Python_列表,元组

一. 列表

————————————————————————————————————————

e.g:name=[‘zhao’,‘qian’,‘sun’,‘li’,‘zhou’,‘wu’]##

1.求列表的长度

len(name)

2.修改列表中元素值

比如我们修改’zhao’为’wang’,代码如下:

name[0]='wang'
print(name)

3.在列表中添加元素

3.1 在末尾添加元素

– append()方法

比如我们在末尾添加’zhen’,代码如下:

name.append('zhen')
print(name)

3.2 在任意位置添加元素

– insert()方法

注意:使用此方法必须指定新元素的索引和值

比如我们在索引为2的位置添加新元素’zhao’,代码如下:

name.insert(2,'zhao')
print(name)

4.从列表中删除元素

————————————————————————————————————————

4.1 使用del语句删除某个元素,例如删除索引为1的元素,代码如下:

del name[1]
print(name)

4.2 使用pop()方法删除元素

使用 pop() 方法相当于直接从列表中将末尾的值给取出来了,你可以使用这个值,但是列表中已经不存在这个值了。例如下面这段代码就将末尾的元素给取出来了,但是当我们再次打印列表时,列表中原末尾元素已经删除了。

last=name.pop()
print(name)
print(last)

4.3 弹出列表中任意位置处的元素,比如删除索引为3处的元素:代码如下:

any=name.pop(3)
print(name)
print(any)

4.4 根据值删除元素

有时候,我们并不知道从列表中删除的值所处的位置。如果只知道要删除元素的值,我们可以使用remove()方法。比如我们需要删除’zhao’这个元素,代码如下:

name.remove('zhao')
print(name)

注意:remove()方法只会删除第一个指定的值,如果列表中存在多个指定的值,我们需要使用循环来判断是否删除了所有这样的值。

练习题

新建一个列表test,其中包含元素[‘car’,‘book’,‘money’,‘honesty’,‘friend’],完成如下操作:a. 向列表末尾添加元素’freedom’ , b. 删除元素’money’ , c.在列表中间添加元素’patriotism’

test=['car','book','money','honesty','friend']
test.append('freedom')
test.remove('money')
test.insert((len(test))//2,'patriotism')

二.组织列表


1.使用sort()对列表进行永久性排序,无法恢复到原来的排列顺序

例如:将name列表按照字母顺序永久性排序,代码如下:

name.sort()
print(name)

如果我们需要以与字母相反的顺序排序,只需要sort()方法传递参数:reverse=True,代码如下:

name.sort(reverse=True)
print(name)

注意:数字也一样,如果需要从大到小排序,我们也向sort()方法传递参数:reverse=True

2.使用函数sorted()对列表进行临时排序

有时我们需要保留原来的排序,同时需要以特定的顺序呈现他们,此时我们可用sorted()函数解决。如果我们需要以相反的顺序显示此列表,也可以向sorted()函数中传递参数:reverse=True。 e.g:我们有一个列表list为[49,38,65,97,76,13,27],现在我们需要将此列表按照升序排列和降序排列,但需要保存原来的顺序,代码如下:

list=[49,38,65,97,76,13,27]
print(list)   #原来列表的序列
print(sorted(list))   #升序
print(sorted(list,reverse=True))  #降序

3.倒着打印列表

要反转列表元素的排列顺序,使用方法reverse(),方法reverse()永久性的改变列表的排列顺序,但也可以随时恢复到原始的排列顺序,只需要再次调用reverse()方法即可。

list=[49,38,65,97]
list.reverse()
print(list)

4.使用列表时避免索引错误

例如我们有一个这样的列表,list=[49,38,65,97],当我们输入以下这句print(list[4])时,会报错误如下:

Traceback (most recent call last):
File "", line 1, in 
print(list[4])
IndexError: list index out of range

当我们需要打印列表的最后一个元素时,我们只需要使用索引-1。这在任何情况下都行之有效,即便你最后一次访问列表后,长度发生了变化。仅当列表为空时,这种访问最后一个元素的方式才会导致错误,会返回一条索引错误的信息。

解决办法:当我们发生索引错误却找不到解决办法时,我们可以尝试将列表或其长度打印出来。列表可能与你以为的截然不同,在程序对其进行了动态处理时也是如此。通过查看列表或其包含的元素数,可以帮你找到这种逻辑错误。

三.操作列表


1.遍历整个列表

注意:使用循环务必重视缩进,牢记每种循环的格式和特点,包括分号

list=[49,38,65,97]
for list1 in list:
	print(list1)

运行结果:

2.创建数值列表

2.1 使用函数range()

for value in range(1,5):
	print(value)

此例子只会打印出来1,2,3,4,不会打印出5,因为函数range()让Python从你指定的第一个值开始到你指定的第二个数停止,但不包括第二个值

2.2 使用range()创建数字列表

#要创建数字列表,可以使用函数list()将range()的结果直接转换为列表。如果将range()作为list的参数,输出将作为一个数字的列表,例如:

num=list(range(1,10))
print(num)

#使用函数range()时,还可以指定步长,例如打印1-10之间的偶数:

num=list(range(2,11,2))
print(num)

#使用range()几乎能够创建任何需要的数字集,例如,如何创建一个列表,其中包含十个整数(即1-10)的平方呢?在Python中,两个星号(**)表示乘方运算。下面代码将前十个整数的平方加入到一个列表中:

test=[]
for value in range (1,11):
	test.append(value**2)

print(test)

#对数字列表执行简单的统计计算

num=[49,38,65,97,76,13,27]
min(num)
max(num)
sum(num)

#列表解析

前面介绍的生成1-10平方数列表中包含了三四行代码,而列表解析让你只需要编写一行代码就能生成这样的列表。列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。代码如下:

num=[value**2 for value in range(1,11)]
print(num)

要使用这种语法,首先指定一个描述性的列表名,如num,然后指定一个左方括号,并定义一个表达式,用于生成你要存储列表的值。在这个例子中表达式为value**2,它计算平方值。接下来,编写一个for循环,用于给表达式提供值,再加上右括号。注意:这里的for语句末尾没有冒号。

2.3 使用列表的一部分

# 切片

name=['zhao','qian','sun','li','zhou','wu']
print(name[0:3])  #包含前三个信息
print(name[:3])   #若不指定起始位置,Python自动从0开始
print(name[-3:])  #切最后三个元素
print(name[-5,-2]) #切倒数第五个到倒数第二个之间的元素(不包括倒数第二个)

# 遍历切片

name=['zhao','qian','sun','li','zhou','wu']
for test in name[0:3]:
	print(test.title())

# 复制列表

name=['zhao','qian','sun','li','zhou','wu']
test=name[:]   #直接创建副本
test1=name  #将两个变量名同指向同一个列表

元组


Python将不能修改的值称为不可变的,而不可变的列表称为元组

1.定义元组

test=(10,20)

2.求元组的长

len(test)

3.遍历元组

test=(2,3,4,5,6)
for i in test:
	print(i)

4.注意,元组的值是不能修改的,如果非要修改元组的值,需要重新定义。

你可能感兴趣的:(Python)