列表
列表是一种sequence,可以存储任何类型的元素 list1 = [1, 1.333, 'abd', ['a', 'b', 'c'] ]
列表中的元素,可空格或分行
空列表 a = [] 或者a = list()
列表切片Slice
参数有2个,开始标和结束标,中间以:隔开
**注意 string1[start:end],从start开始到end结束,但不包括end
string1[start:] 从start开始,到字符串结束
string1[:end] 从第一个字符串开始,到end结束,但不包括end
切片后生成新的对象,没有改变原先的字符串
字符串的元素不可改变,列表的元素可以改变
访问列表元素
a=[132 , ’ddssdf’, 1.3434,[inner,list]]
print(a[1]) ==> ddssdf
print(a[1].title()) ==>Ddssdf **title() 元素首字母大写
修改列表元素
a=[132 , 'ddssdf', 1.3434, ['inner', 'list']]
a[0]=4,重新赋值第一个元素,改变后a=[0, 'ddssdf', 1.3434, ['inner','list']]
a[3][1]= 'newlist',重新赋值列表里的列表,改变后a=[0, 'ddssdf', 1.3434, ['inner','newlist']]
添加列表元素
1. 末尾添加元素 append()
a=[132 , ’ddssdf’, 1.3434,[inner,list]]
a.append(‘HelloWorld’)
print(a)
a=[132 , ’ddssdf’, 1.3434,[inner,list],’HelloWorld’]
2. 中间插入元素 insert()
使用insert()可以在列表的任意地方插入元素,需要指定新元素的索引和值
a=[132 , ’ddssdf’, 1.3434,[inner,list]]
a.insert(0,’first element’)
print(a)
删除元素
1. del 知道需要删除的元素的位置, 并彻底删除不再使用它的值
a=[132 , ’ddssdf’, 1.3434,[inner,list]]
del a[1]
print(a)
2. pop() 将列表中的最后一个元素删除后接着使用它的值
可以将需要删除的元素存储在新的对象里
a=[132 , ’ddssdf’, 1.3434,[inner,list]]
print(a)
poped=a.pop()
print(“The last poped element is ”+poped)
pop(索引) 可以删除任意位置的元素
3. remove() 根据值删除元素
a=[‘132’ , ’ddssdf’, 1.3434,[inner,list]]
print(a)
a.remove(‘123’)
print(a)
remove()从列表中删除元素时,也接着使用它的值。
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
too_expensive='ducati'
motorcycles.remove(too_expensive)
print(motorcycles)
print(too_expensive + " is too expensive for me")
列表的3种方法 del 、pop、remove中,效率最低的是remove
For 遍历整个列表
M=['Cat','dog','panda']
For m in M: * for 尾的冒号是告诉python,下一行是循环的第一行
* print 后的括号不可少
复制列表
my=['pizza','rice','noddle']
his=my[:] * 通过[:] 复制列表里的内容,重新赋值给新对象。产生了2个相同的列表
print (his)
列表排序
1. sort()对列表进行永久性排序
按照字母顺序正向排序, sort()
a = ['faf','rerwre','afrgr','ecgsg','eaffrvb']
print(a)
a.reverse()
print(a)
按照字母顺序方向排序倒序,sort(reverse=True)
a = ['faf','rerwre','afrgr','ecgsg','eaffrvb']
print(a)
a.sort(reverse=True)
print(a)
2. sorted() 对列表进行
函数sorted()能够按照特定的顺序显示列表元素,同时不影响它们在列表中的原始排序顺序
a = ['faf','rerwre','afrgr','ecgsg','eaffrvb']
print("\nHere is sorted list: ")
print(sorted(a))
print("\nHere is original lists:")
print(a)
3. 倒着打印列表 reverse() 永久改变元素顺序
a = ['faf','rerwre','afrgr','ecgsg','eaffrvb']
print(a)
a.reverse()
print(a)
对列表元素加工产生新的列表元素
before = [100, 200, 300, 400, 500]
取出列表里大于300的元素,乘以10%
方法一:
after = []
for one in befer:
if one > 300:
after.append(one * 0.1)
方法二(更简便):
after = [ one*0.1 for one in before if one > 300]