python----3/4 列表简介、操作列表

列表简介

列表是是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目。列表中的元素包括在方括号([])中,每个元素之间用逗号分割。列表是可变的数据类型,可以添加、删除或是搜索列表中的元素。

访问元素
访问列表元素可以通过索引+方括号的形式,记住,索引从0而不是1开始!

Python为访问最后一个元素提供了特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素(当列表为空时,这种访问方式会出错)。索引-2返回倒数第二个列表元素。

shoplist = ['apple', 'mango', 'carrot', 'banana']
print(shoplist)
print(shoplist[0].title())
print('i want a' + ' ' + shoplist[0])

运行结果:
['apple', 'mango', 'carrot', 'banana']
Apple
i want a apple

 动手试一试

#3-2 问候语
names = ['qiqi','qanliang','mingliang','peng']
for x in range(0,4):
    print("Hello," + names[x].title() + "大吉大利!")

修改或添加元素
修改元素可以通过直接赋值的方法。
+ append() :将元素附加到列表末尾。
+ insert() :在列表中指定位置添加新元素。
+ del :删除列表中指定位置元素,例如del names[1]。
+ pop():移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
+ remove():删除列表中一个指定值的元素,也可直接利用删除的值。

shoplist = ['apple', 'mango', 'carrot', 'banana']
shoplist.append('duck')
print(shoplist)
shoplist.insert(0, 'chick')
print(shoplist)
del shoplist[1]
print(shoplist)
temp1 = shoplist.pop(0)
print(temp1)
print(shoplist)
shoplist.remove('banana')
print(shoplist)

运行结果:
['apple', 'mango', 'carrot', 'banana', 'duck']
[‘chick’, 'apple', 'mango', 'carrot', 'banana', 'duck']
[‘chick’, 'mango', 'carrot', 'banana', 'duck']
chick
['mango', 'carrot', 'banana', 'duck']
['mango', 'carrot', 'duck']

 动手试一试

names = []
names.append('新垣结衣')
names.append('奥黛丽赫本')
names.append('迪丽热巴')
for x in range(0,3):
    print('Dear ' + names[x] + ',Can you come to my dinner?')

print('\n' + names[1] + '无法赴约。\n')

names[1] = ('赵丽颖')  #改名单
for x in range(0,3):
    print('Dear ' + names[x] + ',Can you come to my dinner?')

print('\nHaha~,I found a bigger table, I can invite more people!\n')
names.insert(0,'紫霞')
names.insert(2,'静香')
names.append('提莫')

for x in range(0,len(names)):
    print('Dear ' + names[x] + ',Can you come to my dinner?')

print('\nOh! GouRiDe快递没给我把桌子送来,我只能邀请两位了(┬_┬)!\n')

X = len(names)
for x in range(0,X-2):
    popped_name = names.pop()
    print('实在抱歉,' + popped_name +'我不能与你共进晚餐了!')

for x in range(0,len(names)):
    print('Dear ' + names[x] + ',我依然邀请你来与我共进晚餐!')

del names[1]  #del列表应从后往前!
del names[0]
print(names)

组织列表
+ sort():对列表进行永久性排序。默认按照字母顺序排列,相反顺序的话可以传递参数reverse=True
+ sorted():对列表进行临时排序,不改变原本列表。
+ reverse():反转列表元素排序。
+ len() :获取列表长度。

shoplist = ['apple', 'mango', 'carrot', 'banana']
shoplist.sort(reverse=True)
print(shoplist)
shoplist = ['apple', 'mango', 'carrot', 'banana']
print(sorted(shoplist))
print(shoplist)
shoplist.reverse()
print(shoplist)
len(shoplist)

运行结果:
['mango', 'carrot', 'banana', 'apple']
['apple', 'banana', 'carrot', 'mango']
['apple', 'mango', 'carrot', 'banana']
['banana', 'carrot', 'mango', 'apple']
4

操作列表

遍历列表
利用for循环可以快速遍历列表,不要忘记它的冒号

shoplist = ['apple', 'mango', 'carrot', 'banana']
for shop in shoplist:
    print('i want a ' + shop.title())

运行结果:
i want a Apple
i want a Mango
i want a Carrot
i want a Banana

缩进
行首的空白(空格和制表符)决定行的缩进层次,同一层次的语句必须有相同的缩进。
不要混合使用制表符和空格来缩进,在每个缩进层次要么使用单个制表符两个或四个空格

数值列表
+ range():生成指定步长的左闭右开区间的一系列数字。默认步长为1,可指定步长,例如指定步长2,range(2,11,2)打印出从2开始的偶数:2,4,6,8,10。
+ list() :将参数转化为列表。
+ min() :找出数字列表最小值。
+ max() :找出数字列表最大值。
+ sum() :求数字列表所有值相加的总和。

nums = list(range(1,5))
for num in nums:
    print(num)
print(min(nums))
print(max(nums))
print(sum(nums))

运行结果:
1
2
3
4
1
4
10

列表解析可将for循环和创建新元素的代码合并成一行,并自动附加新元素。

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

运行结果:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

使用列表的一部分——切片
+ 创建切片时,要指定切片的第一个元素和最后一个元素的索引,和range()一样,区间为左闭右开。
+ 如果没有指定第一个索引,切片将从列表开头开始。同理,如果没有指定最后一个索引,切片将直到列表末尾结束。负数索引可以输出离列表末尾相应距离的元素。
+ 切片也可以作为列表遍历。
+ 同时省略起始和终止索引可以穿件包含整个列表的切片,相当于复制列表。

nums = list(range(0,11))
print(nums[0:5])
print(nums[:6])
Nums = nums[:]
print(Nums)

运行结果:
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4, 5]
[2, 3, 4, 5, 6, 7, 8, 9, 10]
[8, 9, 10]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

元组
元组不可以修改,使用圆括号标识。元组也可以用循环进行遍历。我们还能给元组的变量赋值。

nums = (1, 2)
print(nums)
nums = (4, 2)
for num in nums:
    print(num)
运行结果:
(1, 2)
4
2

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值