my_list = lsit(),创建了一个列表。
列表可以存储任意多个类型的数据。list是可变类型,可以对它进行增、删、改、查等操作。
1.增加数据。list.append(), list.extend(), list.insert().
append(object),在原列表末尾添加一个数据(各个类型都可以)。
insert(index,object),在指定下标处插入一个数据。
extend(iterable),没有返回值,在原来的列表末尾追加iterable的元素。
my_list = [1,3.14,True]
new_str = "Python"
new_list = ["2,4,6"]
new_tuple = (5, 7)
my_list.append(new_str)
my_list.insert(2,new_tuple)
my_list.extend(new_tuple)
print(my_list)
[1, 3.14, (5, 7), True, ‘Python’, 5, 7]
extend()把可迭代对象中的每个元素追加到原列表末尾,可能与本来想追加整体的想法相悖,注意了。
2.对列表的修改,通过指定下标、切片操作。
my_list = [1, 3.14, (5, 7), True, 'Python']
my_list[my_list.index("Python")] = "JAVA"
print(my_list)
[1, 3.14, (5, 7), True, ‘JAVA’]
my_list = [1, 3.14, (5, 7), True, 'Python']
my_list[2:3] = ['C', 'C++']
print(my_list)
my_list = my_list[::-1]
print(my_list)
[1, 3.14, ‘C’, ‘C++’, True, ‘Python’]
[‘Python’, True, ‘C++’, ‘C’, 3.14, 1]
3.列表的删除,del list[index],pop(index)。都是根据下标进行操作。前者可以指定切片范围;后者不指定则默认删除列表最后一个数据并返回。list.remove(value),删除指定数据。
list1 = [1,2,3,4,5,6,7,8,9]
del list1[0:3]
print(list1)
print(list1.pop(0))
print(list1)
[4, 5, 6, 7, 8, 9]
4
[5, 6, 7, 8, 9]
注意:
使用下标时,超出下标范围会报错:
IndexError:list assignment index out of range。
使用remove(value),指定的value不存在list中,则会报错:
ValueError: list.remove(x): x not in list
4.查看列表。可以指定下标;也可以切片指定范围。如:
list[2],list[-3:]
list = ["张三丰", "张无忌", "张翠山", "武当七侠"]
print(list[1])
print(list[-2:])
张无忌
[‘张翠山’, ‘武当七侠’]
5.列表推导式
需求1:利用推导式列出0-20之间的偶数
my_lsit = [i for i in range(0,21) if i % 2 == 0]
print(my_lsit)
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
需求2:把列表中小于0的数平方并添加到新的列表中
my_list = = [1,-5,2,-3,5,-8,7,-7,-9,-2]
new_list = [i**2 for i in my_list if i < 0]
print(new_list)
[25, 9, 64, 49, 81, 4]
需求3.列表推导式的嵌套
list = [i+j for i in "str" for j in "哈罗"]
print(list)
[‘s哈’, ‘s罗’, ‘t哈’, ‘t罗’, ‘r哈’, ‘r罗’]