Python学习第二天之列表

柳三千

文章最后更新时间:2025年01月14日

列表相当于其他语言的数组,变量只能储存一个元素,列表可以储存多个且不同类型的数据

列表创建

方括号创建

name_list=[]
list2=['张三','李四',9527,'baidu.com',66]
print(list2)
#------输出结果------
['张三', '李四', 9527, 'baidu.com', 66]


使用list()函数

list3=list(['王五','赵六',999])
print (list3)
#------输出结果------
['王五', '赵六', 999]


查询列表元素

打印某元素的索引

list3=list(['王五','赵六',999])
print(list3.index('赵六'))

#------输出结果------
1


打印某一个元素

list3=list(['王五','赵六',999])
print(list3[1])
print(list3[2])
print(list3[-1])

#------输出结果------
赵六
999
999


获取多个元素

list=[10,20,30,40,50,60,70,80,90,100]
print(list[1:7])
print(list[1:6:2])

#------输出结果------
[20, 30, 40, 50, 60, 70]
[20, 40, 60]


列表切片

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

list6=list[1:6]
print(list6)

print(id(list))
print(id(list6))

#------输出结果------
[20, 30, 40, 50, 60]
1798498932992
1798499152640


添加列表元素

#append末尾追加元素
list=[10,20,30,40,50,60,70,80,90,100]
print(list)
list.append('我是新来的,append介绍进来的!')
print(list)
#------输出结果------
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100, '我是新来的,append介绍进来的!']

# 列表名 +=
list=[10,20,30,40,50,60,70,80,90,100]
print(list)
list += ['又一位新成员']
print(list)
#------输出结果------
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100, '又一位新成员']

#insert()我要插队
list=[10,20,30,40,50,60,70,80,90,100]
print(list)
list.insert(1,'我要插在第二位,有问题?')
print(list)
#------输出结果------
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
[10, '我要插在第二位,有问题?', 20, 30, 40, 50, 60, 70, 80, 90, 100]

list=[10,20,30,40,50,60,70,80,90,100]
list.insert(0,'无所谓,反正我第一个!')
print(list)
#------输出结果------
['无所谓,反正我第一个!', 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]


修改列表的值

list=[10,20,30,40,50,60,70,80,90,100]
list[0]= '刘霸天'
print(list)
#------输出结果------
['刘霸天', 20, 30, 40, 50, 60, 70, 80, 90, 100]

#切片赋值(刘霸天上位)
list=[10,20,30,40,50,60,70,80,90,100]
list[1:5]=['刘家军','刘家军','刘家军','刘家军','刘家军']
print(list)
#------输出结果------
[10, '刘家军', '刘家军', '刘家军', '刘家军', '刘家军', 60, 70, 80, 90, 100


删除列表元素

#del
list=[10,20,20,30,30,40,50,60,70,80,90,100]
del list[0]
print(list)
#------输出结果------
[20, 20, 30, 30, 40, 50, 60, 70, 80, 90, 100]

#pop通过索引删除元素,没有索引参数默认删除最后一个
list=[10,20,20,30,30,40,50,60,70,80,90,100]
list.pop(1)
print (list)
#------输出结果------
[10, 20, 30, 30, 40, 50, 60, 70, 80, 90, 100]

list.pop()
print (list)
#------输出结果------
[10, 20, 20, 30, 30, 40, 50, 60, 70, 80, 90]

#remove 根据元素值删除
list=[10,20,'刘霸天',20,30,30,40,50,60,70,80,90,100]
list.remove('刘霸天')
print (list)
#------输出结果------
[10, 20, 20, 30, 30, 40, 50, 60, 70, 80, 90, 100]

list.remove(10)
print(list)
#------输出结果------
[20, '刘霸天', 20, 30, 30, 40, 50, 60, 70, 80, 90, 100]

#clear清空所有元素
list=[10,20,'刘霸天',20,30,30,40,50,60,70,80,90,100]
list.clear()
print (list)
#------输出结果------
[]


列表是否包含这个元素

list=[10,20,65,200,80,60,2000,80200,100]
list2=[12,22,32,52,62]
# #判断元素是否在列表里(in 或者 not in)
print ('--------------in--------------')
num=22
print (num in list)
print(num in list2)
#------输出结果------
--------------in--------------
False
True

print ('--------------not in--------------')
print (99 not in list2)
print( 20 not in list)
#------输出结果------
--------------not in--------------
True
False


列表排序

list=[10,20,65,200,80,60,2000,80200,100]
list.reverse()  #两极反转
print(list)
#------输出结果------
[100, 80200, 2000, 60, 80, 200, 65, 20, 10]
#列表排序 sorted()
#Python函数sorted()可以处理列表的排序,要特别注意的是这个函数返回的是一个新的列表,而非在原来的列表中进行修改!
#sorted()不仅可以处理列表,还可以处理字符串等其它数据类型
list = ['刘备','Tom','张飞','关羽']
print(list)
#------输出结果------
['刘备', 'Tom', '张飞', '关羽']

print (sorted(list))
#------输出结果------
['Tom', '关羽', '刘备', '张飞']
#输出的是原列表
print(list)

#两个ID内存的值不一样了,说明sorted()是生成新的对象
print(id(list))
print(id(sorted(list)))
#------输出结果------
2032099645696
2032100125184
#列表排序 sort()方法这个是对原列表进行操作,依然是列表可变的特性
list2=[2200,100,300,500]
list2.sort()
print (list2)
#------输出结果------
[100, 300, 500, 2200]

#reverse设置排序的方法,默认为False表示从小到大排序
list2.sort(reverse=True)
print (list2)
#------输出结果------
[2200, 500, 300, 100]


列表生成式

#顾名思义就是生成列表的公式
#怎么从一组包含网络设备的列表中,找到思科的设备
dev = ['Cisco_Nexus7010', 'Huawei_S7706', 'Huawei_CE12808', 'Cisco_C9300']
for cisco_dev in dev:
    if 'Cisco' in cisco_dev:
        print(cisco_dev)
#------输出结果------        
Cisco_Nexus7010
Cisco_C9300

#以上案例就可以使用列表生成式了
cisco_dev = [x for x in dev if 'Cisco' in x ]
print (cisco_dev)
#------输出结果------ 
['Cisco_Nexus7010', 'Cisco_C9300']


join拼接字符串

ip=['192.168.100.123','172,16.100.256']
print(ip)
#返回值['192.168.100.123', '172,16.100.256']

print(','.join(ip))#将 ip 这个列表的元素拼接成字符串,元素中间加插逗号隔开。
#返回值192.168.100.123,172,16.100.256


列表嵌套

#接触过其它编程语言的同学们可能会知道二维数组等概念,在Python中我们可以用列表嵌套来实现
interfaces = [ ['Vlanif1 ', '192.168.11.11/24', 'up','up'],['Vlanif10', '10.18.123.5/25 ', 'down','down'],['Vlanif12','12.1.1.3/29','*down','down'] ]
print(interfaces[0][1])
#------输出结果------ 
192.168.11.11/24

#列表中还有列表,这就是列表的“嵌套”
#迭代
[1,2,3,4] # 从左到右,逐个提取,这过程叫“迭代”。这个对象叫“可迭代对象”。

#递归 一层一层钻进去(比如通过多层索引信息找到1这个数字),然后再逐层回归到上面来,这个过程就“递归”。
list=[[[1, 2, 3], [4, 5, 6], [7, 8, 9]], ['e', 'f', 'g'], ['x', 'y', 'z']]
print (list)
print(list[0][0][0])#返回值1,成功找到1
#------输出结果------ 
[[[1, 2, 3], [4, 5, 6], [7, 8, 9]], ['e', 'f', 'g'], ['x', 'y', 'z']]
1


文章版权声明:除非注明,否则均为柳三千运维录原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码