python 中列表 (list) 的超详细说明

python 中列表 (list) 的超详细说明

列表(list)

类似C语言中的数组

一、定义一个列表(4种)

中括号括起来,元素用逗号隔开

定义一个空列表:

list = []

定义一个非空列表 :

list = [1,2,3]

定义一个一行放不下的列表:

list = ['good','bad','fat',

'thin','fast']

直接定义多维列表:

heroInfos =[['魏','曹操',160.3],['蜀','刘备',177.1],['吴','周瑜',188.6]]

间接定义多维列表(列表嵌套):

words = ['a', 'b', 'c']

nums = [1, 2, 3]

x = [words, nums]

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

#输出结果为:

[['a', 'b', 'c'], [1, 2, 3]]

二、列表中元素可以包含什么?

列表的数据项不需要具有相同的类型

list1 = [1, 2, 3, 4, 5 ] #数值

list2 = ["a", "b", "c", "d"] #字符串(不涉及嵌套的话,单引号、双引号都行)

list3 = ['Google', 'Runoob', 1997, 2000] #字符串和数值

三、访问

与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推。

要使用 [] 包裹索引数。

正向索引:

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']

print(list[0])

print(list[1])

print(list[len(list)-1]) #列表长度-1,即最后一个元素的索引index

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

#输出结果为:

red

green

black

反向索引:

反向索引从 -1 开始,最后一个为 -1,倒数第二个为 -2 ,以此类推。

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']

print(list[-1])

print(list[-2])

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

#输出结果为:

black

white

截取:

list_new = list[start:end]

结果也是一个列表!!

左闭右开,能取到 list[start],但是取不到 list[end],成员数:end-start。

①正向索引截取:

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]

print(nums[0:4])

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

#输出结果为:

[10, 20, 30, 40]

②反向索引截取:

也是按照数学上负数的大小,左小右大。

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]

print(nums[-3:-1])

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

#输出结果为:

[70, 80]

③混合正向反向索引截取:

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]

print(nums[1:-2])

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

#输出结果为:

[20, 30, 40, 50, 60, 70]

多维列表访问:

list = [['human','man',14],['animal','dog',2]]

print(list[0][1])

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

#输出结果为:

man

list = [['human','man',14],['animal','dog',2]]

print(list[0])

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

#输出结果为:

['human', 'man', 14]

如果要把列表和字符串放在一块打印输出,那么要用str()包裹列表,将它转换为字符串类型。

list = [['human','man'],['animal','dog']]

print(str(list)+'good') # print(list+'good') ×

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

#输出结果为:

[['human', 'man'], ['animal', 'dog']]good

四、增、插、删、改、其他

列表新增之追加——append()

append是在列表的最后,追加一个元素。

list = ['first','second','third']

list.append('fourth')

print(list)

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

#输出结果为:

['first', 'second', 'third', 'fourth']

这里用到了符号点·,符号点的意思是使用(点)前面变量的方法。

列表新增之插入——insert()

list.insert(index,value)

插入后,list(index) 即为 value 。原 list[index:end] 均往后挪一位。

每一次插入操作后,数组中元素的下标都会发生变化,要注意!

示例:

heros = ['牛魔', '妲己', '兰陵王']

heros.insert(2,'亚瑟')

print(heros)

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

#输出结果为:

['牛魔', '妲己', '亚瑟', '兰陵王']

列表删除——pop()

popvalue = list.pop(index)

移除列表中的指定元素(默认最后一个元素),并且返回该元素的值。

heros = ['牛魔', '妲己','亚瑟','兰陵王']

leave = heros.pop()

print(heros) # ['牛魔', '妲己','亚瑟']

heros.append('孙悟空') # ['牛魔', '妲己','亚瑟','孙悟空']

leave = heros.pop(1)

print(heros)

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

#输出结果为:

['牛魔', '妲己', '亚瑟']

['牛魔', '亚瑟', '孙悟空']

也可以直接使用 del 语句来删除列表中的元素:

del list[index]

列表改: 用不到什么指定方法,直接改就行:

heros = ['牛魔', '妲己','亚瑟','兰陵王']

heros[0]='孙尚香'

print(heros)

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

#输出结果为:

['孙尚香', '妲己', '亚瑟', '兰陵王']

其他:

序号方法1list.count(obj) 统计某个元素在列表中出现的次数2list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)3list.index(obj) 从列表中找出某个值第一个匹配项的索引位置4list.remove(obj) 移除列表中某个值的第一个匹配项5list.reverse() 使列表中元素顺序翻转过来6list.sort( key=None, reverse=False) 对原列表进行排序,reverse=False 则从小到大排序,reverse=True 则从大到小排序。对于非数值列表的排序,建议去GPT搜搜:是按照字符串中字符的 Unicode 码点值进行逐字符比较排序的。7list.clear() 清空列表8list.copy() 复制列表

脚本操作符

列表中, + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

python表达式结果描述[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]表内组合[‘Hi!’] * 4[‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’]表内重复3 in [1, 2, 3]True查询元素是否存在于列表中

五、列表有关函数

序号函数1len(list) 返回列表元素个数2max(list) 返回列表元素最大值3min(list) 返回列表元素最小值4list(tuple) 将元组转换为列表运行之后,其中 tuple 仍是元组,list1=list(aTuple)才是列表

六、列表比较

列表比较需要引入 operator 模块的 eq 方法:

operator.eq(list1,list2)

两个列表相同,就会输出 True,不同就会输出 False 。

# 导入 operator 模块

import operator

a = [1,2]

b = [2,3]

c = [2,3]

print(operator.eq(a,b))

print(operator.eq(c,b))

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

#输出结果为:

False

True

猜你喜欢

指甲油应涂几层比较佳?干燥时间多久?
365提款问题

指甲油应涂几层比较佳?干燥时间多久?

📅 07-08 ❤️ 322
香港直邮(转运)内地收费标准
GBT36507-2018

香港直邮(转运)内地收费标准

📅 07-25 ❤️ 826
《军舰岛》8月将在全球15个国家和地区上映
365提款问题

《军舰岛》8月将在全球15个国家和地区上映

📅 07-16 ❤️ 844
lol狮子狗皮肤价格(详细介绍狮子狗皮肤的价格和购买方式)
移动光猫开启NAT/UPNP/DMZ方法
GBT36507-2018

移动光猫开启NAT/UPNP/DMZ方法

📅 07-18 ❤️ 379
[蓝拳]自定义改版后的蓝拳直伤流派推荐
GBT36507-2018

[蓝拳]自定义改版后的蓝拳直伤流派推荐

📅 07-06 ❤️ 912
OPT全攻略!毕业后如何在美国找工作?
365提款问题

OPT全攻略!毕业后如何在美国找工作?

📅 07-17 ❤️ 426
Samutprakarn鳄鱼农场和动物园
365提款问题

Samutprakarn鳄鱼农场和动物园

📅 07-26 ❤️ 83
彩虹岛甜心的获取方法是什么?甜心有什么特殊功能?
best365体育正不正规

彩虹岛甜心的获取方法是什么?甜心有什么特殊功能?

📅 07-14 ❤️ 651