为什么需要列表:
列表相当于一个容器。可以把一系列相关的值放在这个容器中进行存储。比如现在要存储水果的种类,那么如果通过之前的方式,一种水果用一个变量存储,那么代码将变得非常糟糕。正确的存储方式应该是定义一个列表类型的变量,然后把所有这些水果的名字存储到这个列表中。在其他编程语言中,叫做数组。
列表介绍:
如何定义列表:使用左右两个中括号的形式。
fruits = ['apple','banana','orange']
# 列表中的值,可以为不同的数据类型
test_list = ['a',1]
如何取列表中的值:列表支持下标操作,跟字符串的下标操作是一样的。
fruits = ['apple','banana','orange']
a = fruits[0]
b = fruits[1]
c = fruits[2]
列表的遍历:使用for和while循环都可以遍历。但一般推荐使用for循环。
for循环版本的:
fruits = ['apple','banana','orange']
for fruit in fruits:
print(fruit)
while循环版本的:
fruits = ['apple','banana','orange']
index = 0
length = len(fruits)
while index < length:
fruit = fruits[index]
print(fruit)
列表嵌套:列表中可以存储任何数据类型,当然也包括列表自身类型。也即,列表中也可以存储列表:
test_list = [1,2,3,['a','b','c']]
for temp in test_list:
print(temp)
列表相加:列表相加,相当于把后面一个列表的数据追加到第一个列表后面。
a = [1,2,3]
b = [4,5,6]
c = a + b
print(c)
列表的切片操作:跟字符串中的切片操作是一样的。
开始位置:包括开始位置。
结束位置:会取到结束位置前一个元素。
步长:默认位1,如果步长为负数,则从右到左。如果步长正数,则从左边到右边。
切片可以赋值。
逆序:list[-1::-1]
列表常用操作:
append:在列表末尾添加元素。
fruits = ['apple']
fruits.append('banana')
count:统计某个元素在列表中出现的次数。
temps = ['to','be','or','not','to','be']
print(temps.count('to'))
extend:将一个列表中元素追加到另外一个列表中。
a = [1,2,3]
b = [4,5,6]
c = a.extend(b)
# c的结果是:1,2,3,4,5,6
index:找出列表中第一个某个值的第一个匹配项的索引位置,如果没有找到,则抛出一个异常:
knights = ['hello','world']
print(knights.index('hello'))
insert:将某个值插入到列表中的某个位置:
chars = ['hello','world']
chars.insert(1,'nihao')
pop方法:移除列表中最后一个元素,并且返回该元素的值:
x = [1,2,3]
temp = x.pop() # 返回3
remove方法:移除列表中第一个匹配的元素,不会返回这个被移除的元素的值。如果被移除的这个值不存在列表中,则会抛出一个异常。
x = [1,2,3]
x.remove(2)
reverse:将列表中的元素反向存储。会更改原来列表中的值。
x = [1,2,3]
x.reverse()
print(x) #这时候x已经变成3,2,1了
sort:将列表中的元素进行排序。会更改原来列表中的位置。
x = [4,2,1,5,3]
x.sort()
print(x)
要区分sorted函数,sorted函数不会更改原来列表的位置,并且会返回一个排序后的值。
x = [4,2,1,5,3]
y = sorted(x)
print(y)
del关键字:根据下标删除元素:
a = [1,2,3]
del a[0]
print(a) # [2,3]
使用in判断列表中是否有某个元素:
x = [1,2,3]
if 1 in x:
print(True)
else:
print(False)
list函数:将其他的数据类型转换成列表:
a = 'hello'
print(list(a))
列表生成式:
列表生成式,可以将好几行的代码写在一行中。比如要获取一个从1-100的整数值的列表。如果通过传统的方式,那么只能这样写:
values = []
for x in range(1,101):
value.append(x)
如果通过列表生成式,那么可以通过以下一行代码实现:
values = [x for x in range(1,101)]
当然也可以在列表生成式的时候,判断条件,只有满足条件的才会被加入到列表中:
values = [x for x in range(1,101) if x%2==0]
—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com