序列及相关函数 列表、元组、集合、字典及其区别
一、列表 [ ] 有序集合,可重复
- list.append(1个元素)
- list.extend([要插入的元素组成的列表])
- list.insert( 要插入的位置下标,要插入的内容)
list = [1, 6, 6]
list.append(10)
list
>>>[1, 6, 6, 10]
list.extend([1, 2])
list
>>>[1, 6, 6, 10, 1, 2 ]
list(2, "hh")
list
>>>[1, 6, 6, "hh", 10, 1, 2]
- list.count(元素) ---> 该元素在列表中出现的位置
>>>list = [1, 2, 3, 4]
>>>list.count(1)
2
>>>list.index(1)
0
>>>start = list.index(1) + 1
>>>print( "start = ",start)
>>>stop = len(list)
>>>print("stop = ", stop)
>>>list.index(1, start, stop)
start = 1
stop = 4
2
- list.index(要找的值, 从哪, 到哪 ) ---> 返回值第一次匹配的位置
- list.remove(要删除的元素名)
- list.pop(要弹出删除的元素的对用位置 默认为尾部)
- list.reverse() ---> 对list列表进行反向操作
- list.reversed() ---> 返回反转的迭代器对象
- list.sort( , , reverse=False默认为升序 ) ---> 对列表list进行排序。只有输入reverse=True时为降序
- list.sorted(列表L) ---> 返回心列表L' , 但原来的列表L不会变(这是与sort的区别)
- 分片: lilst [ 从下表为几 : 到下标为几之前 :几个元素为一步 ]
- 注意: 分片与拷贝, 拷贝仅仅将指针指向原list ,原list变,拷贝的新list1 也变;而分片得到的新list2 与原list已经没有关系
- del list [ 删除第几个元素 ]
二、元组 (, , , ,.......) 注意:" , "是关键 有序集合,元素可以重复,不支持任何修改操作
obj1 = (1)
type(obj1)
###########
obj2 = 1,2,3
type(obj2)
>>> int # 第一个是整形数据
>>> tuple # 第二个才是元组
>>>8 * (8)
>>>8 * (8,)
>>> 64 # 列表有序
>>>(8, 8, 8, 8, 8, 8, 8, 8) # 元组有序
- del tuple ---> 删除整个元组,因为元组中的值是不可以删除或添加的,只能一次消灭所有
- cmp(tuple1, tuple2) ---> tuple1>tuple2: 1 ; tuple1 == tuple2 : 0 ; tuple1<tuple2 : -1
- len(tuple) ---> 元组元素个数
- max(tuple) ---> max
- min(tuple) ---> min
- tuple(list) ---> 列表转为元组
三、集合 () 无序集合,元素不可重复
- set(value) ---> 返回一个集合
>>>a = 'aaabbbccc'
>>>newa = set(a)
>>>a
('a', 'b', 'c')
四、字典 { key : value } 无序集合,元素可重复
- key 值不可变,所以不可以用列表作为key
dict = {['Name']: 'Zara', 'Age': 7}
print "dict['Name']: ", dict['Name']
输出结果:
Traceback (most recent call last): File "test.py", line 3, in <module> dict = {['Name']: 'Zara', 'Age': 7} TypeError: list objects are unhashable
- dict.clear() ---> 删除所有元素\
- dict.cop() ---> 返回复制的
- dict.fromkeys(seq, value 默认为None)---> seq为一个序列
补充:
- enumerate()
str = "Hi!"
for each in enumerate(str):
print(each)
输出:
>>> (0,'H')
>>> (1,'i')
>>> (2,'!')
- zip(list1, list2,list3,....,listn) ----> 返回(list1的第一个元素,list2的第一个元素,..... , list n的第一个元素)... 将所有元素组合完
- zip将一个或多个迭代器放入(),并返回列表,将可迭代对象对象的打包成元组,然后用list() 转换为列表
- ‘ * ’ 也可以将元祖解压为列表
五、字符串
- find( str, 开始位置, 结束位置 )---> 返回str第一次匹配的位置下标,否则返回-1
- split(分割方式符号, 步长)
- splitlines( 返回分割后前多少行) ---> 按 \n分割
- join()插在序列元素中间
>>>'$'.join("Hi!")
H$i$!
>>>' '.join("lalala")
l a l a l a
>>> str = '-'
>>>seq = ('a'', 'b')
>>>str.join(seq)
a-b
- 格式化:
>>> "{1} are {0}".format(" you ", "How ")
How are you
更多函数以及格式化操作符请见:字符串