• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python Learning 列表的更多操作及示例代码

python 搞代码 4年前 (2022-01-07) 46次浏览 已收录 0个评论

这篇文章主要介绍了Python Learning-列表的更多前端的相关知识点将在后面进行详细探讨

在写 for 循环语句的时候,造成别忘记在后面加上 冒号 ,循环体中的代码千万别忘记添加缩进;缩进一般是一个制表符的距离,即四个空格的距离;不过,不建议将制表符与空格符混合使用

创建数值列表-range()

前面的列表中的元素都是字符串类型的,列表中可以存储任意对象,现在定义一个数值列表

numbers = [1,2,3,4,5]

如果想定义一个从1到1000的数值列表,手动将这些数值一个一个写进列表里,一点也不高效;可以使用函数 range() 快速创建一系列数字

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

输出:

rnage(1, 6) 会生成从1到5的数字,6表示到6的时候就停止创建动作,如果想创建1到1000的数字,则是 range(1, 1001)

通过 list() 可以将 range() 创建的数字转换成列表

 # 输出range()看看 numbers = range(1,6) print('range: ',numbers) # 转换成列表后,再输出看看 numbers = list(numbers) print('list: ',numbers)

输出:

range: range(1, 6)  list: [1, 2, 3, 4, 5]

可以看出, range() 返回的是一个 可迭代对象 ,经过转换后才是一个列表对象

还可以通过指定 步长 ,来生成一系列偶数

 numbers = range(2,21,2) print(list(numbers))

输出:

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

range(start, stop[, step]) 这是Python的使用说明文档中关于 range() 的使用说明,start表示从哪个数字开始,stop表示到哪个数字停止,[, step]表示步长,方括号表示这个参数是可选的,即可写可不写

可以在Python的IDLE中输入 help(range) 来得到关于range()的帮助文档

>>> help(range)

一些简单的、常用的数字列表统计函数:

 # 定义一个偶数列表 numbers = list(range(2,21,2)) # 求数值列表中最小的元素值 print(min(numbers)) # 求数值列表中最大的元素值 print(max(numbers)) # 求数值列表所有元素的和 print(sum(numbers))

输出:

列表解析

直接看下面代码

 # 定义一个偶数列表 numbers = list(range(2,21,2)) squares = [value**2 for value in numbers] print(squares)

输出:

[4, 16, 36, 64, 100, 144, 196, 256, 324, 400]

for循环的这种写法 squares = [value**2 for value in numbers] 叫做 列表解析

首先,写一对中括号,它表示一个列表;然后列表中分类两部分,第一个部分是表达式,即 value**2 ,这个表达的意思是计算一个值的乘方;第二部分是列表循环,即 for value in numbers ;最终结果是将列表中的每个值都按乘方计算一次后,放入一个列表中,再赋值给变量 squares

这里需要注意的是,循环后面没有冒号,可以理解为将循环体的代码块精简成了一个表达式

列表切片

只获取列表的部分元素,这样的操作叫作 切片

切片通过列表的索引进行操作,即从哪个索引开始,到哪个索引结果,将这段元素取出

 # 定义一个食物列表 foods = ['potato', 'tomato', 'noodles', 'apple', 'pizza'] # 取出第二个元素到第四个元素 print(foods[1:4])

输出:

['tomato', 'noodles', 'apple']

foods[1:4] 方括号中的1表示索引1位置,4表示索引4位置;需要注意的是,1表示从索引1开始,而4表示到索引4就结束;也就说,索引4位置的元素不会返回;所以,这里返回的结果是从索引1到索引3的三个元素

如果省略冒号前的数字,则表示从开始的位置取值

 # 从索引0开始,取到索引4之前的所有值 foods[:4] 如果省略冒号后的数字,则表示一直取到列表的末尾 # 从索引1开始,一下取到列表结束的位置 foods[1:] 如果只有冒号,表示取所有数据 # 取所有数据 foods[:]

还可能使用负数

# 从倒数3个元素开始,一直取到末尾
foods[-3:]

for循环与切片的结合

 # 定义一个食物列表 foods = ['potato', 'tomato', 'noodles', 'apple', 'pizza'] # 打印第2个到第4个元素 for food in foods[1:4]: print(food)

输出:

tomato  noodles  apple

关于列表的复制

先来看个例子

 foods1 = ['potato', 'tomato', 'noodles', 'apple', 'pizza'] foods2 = foods1 print(foods1) print(foods2)

将foods1列表赋值给foods2列表,看似是一个复制动作,但foods1与foods2实际上是一个对象

 foods1 = ['potato', 'tomato', 'noodles', 'apple', 'pizza'] foods2 = foods1 foods1.append('chocolate') print(foods1) print(foods2)

输出结果:

[‘potato’, ‘tomato’, ‘noodles’, ‘apple’, ‘pizza’, ‘chocolate’]  [‘potato’, ‘tomato’, ‘noodles’, ‘apple’, ‘pizza’, ‘chocolate’]
因为, [‘potato’, ‘tomato’, ‘noodles’, ‘apple’, ‘pizza’] 创建了一个列表对象,foods1变量与foods2变量实际存储的是指向 [‘potato’, ‘tomato’, ‘noodles’, ‘apple’, ‘pizza’] 的一个引用,所以,修改foods1后,发现food2也变了

复制需要另外创建出一个一模一样的对象出来,但它们必须的确是两个对象才行

 foods1 = ['pota<span style="color:transparent">来源gaodai#ma#com搞*!代#%^码网</span>to', 'tomato', 'noodles', 'apple', 'pizza'] foods2 = foods1[:] foods1.append('chocolate') print(foods1) print(foods2)

输出:

[‘potato’, ‘tomato’, ‘noodles’, ‘apple’, ‘pizza’, ‘chocolate’]  [‘potato’, ‘tomato’, ‘noodles’, ‘apple’, ‘pizza’]
foods1[:] 返回foods1所有的元素,并创建了一个副本,这个副本是另一个对象,然后再会给了foods2,因此在更改foods1时,没有影响到副本

也可以使用 id(foods1);id(foods2) 来查看列表对象在计算机内的ID,ID不同,则不是同一个对象

简单谈一下元组

元组的使用与列表类似,不同的,列表是可改变的,而元组不是可改变的;列表用 [] 来定义,元组则使用 () 来定义

 # 定义一个元组 numbers = (1,2,3,4,5) # 支持索引访问 print(numbers[1]) # 支持循环 for number in numbers: print(number) # 不支持对元素的修改,执行下面代码会报错 numbers[0] = 11

报错内容

Traceback (most recent call last):  File “C:/Users/Administrator/Desktop/s.py”, line 11, in   numbers[0] = 11  TypeError: ‘tuple’ object does not support item assignment

下面看一段示例代码the day of python learning(列表)

 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li = [‘alex',123,Ture,(1,2,3,'wusir'),[1,2,3,'小明',],{‘name':'alex'}] 列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。 # li = ['alex',[1,2,3],'wusir','egon','女神','taibai'] # l1 = li[0] # print(l1)  #“alex‘ # l2 = li[1]  #[1,2,3] # print(l2) # l3 = li[0:3] #['alex', [1, 2, 3], 'wusir'] # print(l3) li = ['alex','wusir','egon','女神','taibai'] #增加 append()  insert() # li.append('日天') # li.append(1) # print(li) # while 1: #   username = input('>>>') #   if username.strip().upper() == 'Q': #     break #   else: #     li.append(username) # print(li) # li.insert(4,'春哥') # print(li) # li.extend('二哥') # li.extend([1,2,3]) # print(li) #删 li = ['taibai','alex','wusir','egon','女神',] # name = li.pop(1) # 返回值 # name = li.pop() # 默认删除最后一个 # print(name,li) # li.remove('taibai') # 按元素去删除 # print(li) # li.clear() # 清空 # print(li) # del li # del li[0:2] # 切片去删除 # print(li) #改 # li[0] = '男兽' # li[0] = [1,2,3] #切片 # li[0:3] = '云姐plfdslkmgdfjglk' # li[0:3] = [1,2,3,'春哥','咸鱼哥'] # print(li) #查 # for i in li: #   print(i) # print(li[0:2]) #公共方法: # l = len(li) # print(l) # num = li.count('taibai') # print(num) # print(li.index('wusir')) # li = [1,5,4,7,6,2,3] # #正向排序 # # li.sort() # # print(li) # #反向排序 # # li.sort(reverse=True) # # print(li) # #反转 # li.reverse() # print(li) #列表的嵌套 li = ['taibai','武藤兰','苑昊',['alex','egon',89],23] # print(li[1][1]) # name = li[0].capitalize() # # print(name) # li[0] = name # li[0] = li[0].capitalize() # li[2] = '苑日天' # print(li[2].replace('昊','ritian')) # li[2] = li[2].replace('昊','ritian') # li[3][0] = li[3][0].upper() # print(li)

总结

以上所述是小编给大家介绍的Python Learning 列表的更多操作及示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对gaodaima搞代码网网站的支持!

以上就是Python Learning 列表的更多操作及示例代码的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python Learning 列表的更多操作及示例代码

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址