列表和成员运算符
-
list
- 方括号创建列表
- 可以把所有数据类型混在一起
- 使用负数从列表末尾开始索引,-1 表示最后一个元素
lst _of_random_things = [1, 3.4, 'a string', True]
lst_of_random_things [len(lst_of_random_things) - 1]
-->索引减一获取最后一个元素
-
list slicing(列表切片)
- 下限索引包含在内,上限索引排除在外
- 简写
- 从列表开头开始,忽略起始值
lst_of_random_things[:2]
- 返回到列表结尾的所有值,忽略最后一个
lst_of_random_things[1:]
-
in
¬ in
返回bool,是否存在于列表中
'this' in 'this is a string'
- 倒数三个值
lst[-3:]
- 从列表开头开始,忽略起始值
- 简写
- 下限索引包含在内,上限索引排除在外
sentence2 = ["I", "wish", "to", "register", "a", "complaint", "."]
sentence2[0:2] = ["We", "want"]
-
可变性和顺序(mutability & order)
- Mutability --> Whether an object can change its values after it has been created.
list -> mutable, string ->immutable
- Mutability --> Whether an object can change its values after it has been created.
my_lst = [1, 2, 3, 4, 5]
my_lst[0] = 'one'
print(my_lst)
- Order -->list & string 都是有序的
列表方法
-
可变相当于引用,指针,赋值其实是指向同一个地址,所以一个改变另一个也改变。不可变变量,赋值其实是另外开辟一个内存空间存值进去。
Screen Shot 2018-08-31 at 1.58.45 PM.png
Screen Shot 2018-08-31 at 2.00.48 PM.png -
实用的列表函数(一)
-
len()
->元素数量 -
max()
->最大元素。字符串:首字母按字母顺序排序最大 -
min()
->min -
sorted()
->升序 ,降序-->print(sorted(lst, reverse = True)
-
-
实用的列表函数(二)
- join() --> 参数:字符串列表,返回:由分隔符分割,列表元素组成的字符串, 注意列表元素要用英文逗号隔开
new_str = "\n".join(["fore", "aft", "starboard", "port"])
print(new_str)
- append() ->将元素添加到列表末尾
letters = ['a', 'b', 'c', 'd' ]
letters.append('z')
⚠注意
Screen Shot 2018-08-31 at 2.18.31 PM.png
字典和恒等运算符
-
字典
- 数据类型:可变
- 存储值:键值映射
- 创建:
elements = {"hydrogen": 1, "helium": 2,"carbon": 6}
- 查询:
elements["hydrogen"]
- 插入新值:
elements["lithium"] = 3
- 检查某值是否在
-print("carbon" in elements)
-->返回bool
-print(elements.get("dilithium"))
-->返回None或值 - 返回默认值的get
elements.get('kry', 'There\'s no such element!')
-->即key没找到时返回这句话
-
恒等运算符
-
is
-->检查两边是否恒等 注意与相等==
区别 -
is not
-->检查两边是否不恒等 print(elements.get("dilithium") is None)
-
集合
- 唯一性,无序性,不可重复性
- 一个用途:快速删除列表中的重复项 -->可见list特点:有序性,可重复性
numbers = [1,2,6,3,1,1,6]
unique_nums = set(numbers)
print(unique_nums)
- 方法 -->
in
,add()
,pop()
-->随即删除一个元素,union
,intersection
,difference
fruit = {"apple", "banana", "orange", "grapefruit"}
print("watermelon" in fruit)
fruit.add("watermelon")
print(fruit)
print(fruit.pop())
print(fruit)
复合数据结构
- 在其他容器中包含容器
elements = {"hydrogen": {"number": 1,
"weight": 1.00794,
"symbol": "H"},
"helium": {"number":2,
"weight": 4.002602,
"symbol": "He"}}
# elements字典将键映射仍是字典
#访问嵌套字典的元素
hydrogen_weight = elements["hydrogen"]["weight"]
总结
附:
每日一题:什么叫可变对象,什么叫不可变对象,python中哪些对象是可变的,哪些对象是不可变的?
- 可变对象:对象创建完毕后可以更改该对象。从内存角度:可以直接在对象所指的内存空间修改数据
- 不可变对象:对象创建完毕后不可更改该对象。从内存角度:不同对象对应不同的内存空间(?)
- python中的可变对象:list,dict
- python中的不可变对象: string,int,float,tuple
网友评论