3.Python-复杂数据类型之列表、元组

  • 概述
    这一篇简述列表、元组和字典,为什么没有类?
    因为还没学到。。。

  • 列表是什么
    列表就是数组,对的,list,明显是翻译的锅。暂时从简单的开始,还没学到numpy.array,我猜那是后者更方便使用。

bicycles=['trek','cannondale','redline','specialized']
print(bicycles)
#use
print(bicycles[0])

这就是List,关于列表,关注的点无非是怎么使用、改变元素值、添加、插入、删除。。。【代码接上面】

#change
bicycles[0]='ducati'
print(bicycles[0])
#add to tail
bicycles.append('suzuki')
print(bicycles)
#add-insert
bicycles.insert(0,'yamaha')
print(bicycles)
#del
del bicycles[0]
print(bicycles)

在这里插入图片描述
还有几种奇怪的删除方式,比如
(1)将元素删除,并接着使用它的值。例如需要获得刚杀死的外星人的x,y坐标,以便在相应的位置显示爆炸效果。
(2)删除任意位置的元素;
(3)根据值删除元素。

bicycles=['trek','cannondale','redline','specialized']
print(bicycles)
#--del then use
popped_bicycles=bicycles.pop()
print(bicycles)
print(popped_bicycles)

#--del any element
popped_bicycles=bicycles.pop(2)
print(bicycles)
print(popped_bicycles)

#--del according to value
bicycles=['yamaha','trek','cannondale','redline','specialized']
too_expensive='yamaha'
bicycles.remove(too_expensive)
print(bicycles)
print('A '+too_expensive.title()+" is too expensive for me.")

在这里插入图片描述

  • 列表的排序等
    排序主要用到永久排序、临时排序和倒序
    永久排序用python方法sort(),其中可以传递参数使按字母顺序相反排序。
#sort forever
bicycles=['yamaha','trek','cannondale','redline','specialized']
bicycles.sort()
print(bicycles)
bicycles.sort(reverse=True)
print(bicycles)

在这里插入图片描述
临时排序要保留原来的顺序,同时以特定的顺序呈现元素

#sort temporary
bicycles=['yamaha','trek','cannondale','redline','specialized']
print(sorted(bicycles))
print(bicycles)
print(sorted(bicycles,reverse=True))
print(bicycles)

在这里插入图片描述
倒序显示可使用reverse(),获得列表长度可使用len()

#reverse
bicycles=['yamaha','trek','cannondale','redline','specialized']
bicycles.reverse()
print(bicycles)

#length
print(len(bicycles))

在这里插入图片描述

  • 操作列表——FOR
    遍历列表的所有元素,并对每一个元素进行相同的操作时,需要用到for。
    python中的for和C++中并无本质的区别,需要注意的是格式。Python中的花括号给别的用了,for包括之后的while、if都是通过冒号和缩进来标识循环体的。混合编程时很容易一下子切换不过来,习惯就好了。

Python根据 缩进 来判断代码行与前一个代码行的关系。

遍历列表,注意冒号和缩进。

magicians=['alice','david','carolina']
for magician in magicians:
	print(magician)
	print("it is a trick.")

在这里插入图片描述
for这句话,从列表magicians中取出一个名字,将其存储到变量magician中【注意单复数,这书的作者是歪果仁。。。不过使用单复数方便判断是列表整体还是列表元素】。

  • 创建数字列表
    使用函数range()可以生成一系列数字
for value in range(1,5):
	print(value)

numbers=list(range(1,6))
print(numbers)
numbers=list(range(2,11,2))
print(numbers)

range()从第一个值开始数,到达第二个值停止,不包含第二个值。第三个参数代表步长。
在这里插入图片描述
简单的例子,以及一些统计计算

squares=[]#creat an empty list
for value in range(1,11):
	square=value**2
	squares.append(square)#add to the tail of the list
print(squares)
##
squares=[value**2 for value in range(1,11)]
print(squares)

print(min(squares))
print(max(squares))
print(sum(squares))

在这里插入图片描述

  • 使用列表的一部分——切片
    切片。。。
    这让我想起来张量分解,脑壳疼。。。
    列表中的部分元素称之为切片
    python的索引和C++一样,是从0开始的,不像matlab。

创建切片,可以生成列表的任意子集

players=['charles','martina','michael','florence','eli']
print(players[0:3])
print(players[2:4])
print(players[:4])
print(players[2:])
print(players[-3:])#last three

在这里插入图片描述
省略第一索引,则自动从头开始;
省略第二个索引,则自动到列表末尾。
负数索引代表到末尾相应距离的元素。

-遍历切片与复制列表
采用for遍历切片

players=['charles','martina','michael','florence','eli']	
for player in players[2:]:
	print(player.title())
#copy
my_food=['pizza','falafel','carrot','cake']
friend_food=my_food[:]
print(my_food)
print(friend_food)

my_food.insert(0,'cannoli')
friend_food.append('ice cream')
print(my_food)
print(friend_food)

在这里插入图片描述
在不指定索引的情况下从列表my_food中提取一个切片,从而创建了这个列表的副本,并将其存储到变量friend_food中。插入使用insert(),在末尾添加采用append()。

  • 元组
    元组就是不可变的列表,OK
    给个例子
dimension=(200,50)
print(dimension[0])

在程序运行过程中不变,只能在定义时赋值。

总结一下:列表适合存储在程序运行期间变化的数据集,而元组则适用于存储程序运行期间不变的数据集。
就酱!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值