列表操作2

遍历

names =['zhangsan','lisi','wangmazi']
print('初始列表:',names)
print('利用for循环打印列表中全部元素:')
#将表中每一个元素赋值给name,再打印出来
for name in names:
    print(name)

结果:

初始列表: [‘zhangsan’, ‘lisi’, ‘wangmazi’]
利用for循环打印列表中全部元素:
zhangsan
lisi
wangmazi

分析:通过for循环实现遍历
#在for循环中是通过缩进来判断是否在for循环
#注意for循环末尾有冒号“:”,注意for循环后面还有一个冒号“:”

函数range()的使用

range(min,max)函数产生从最小值min到最大值max-1,步长为1的几个数
range(min,max,len) 参数len是指步长,如第一个数是1,name第二个数为1+len

print('产生从1到5-1,步长为1的几个数:')
for number in range(1,5):
    print(number)
print('\n');
print('产生从1到5-1,步长为2的几个数:')
for number in range(1,5,2):#步长可以修改为任意值,这里改为2
    print(number)

结果:

产生从1到5-1,步长为1的几个数:
1
2
3
4
产生从1到5-1,步长为2的几个数:
1
3

使用range()函数和list()函数将结果转换为列表

numbers = list(range(1,10,3))
print('使用range()函数和list()函数将结果转换为列表,创建的列表为:',numbers)
print('输出1到10的平方:')
squares = []
for value in range(1,11):
    squares.append(value**2)
print(squares)

结果:

使用range()函数和list()函数将结果转换为列表,创建的列表为: [1, 4, 7]
输出1到10的平方: [1, 4, 9,16, 25, 36, 49, 64, 81, 100]

处理数字列表的函数

函数min()求列表中的最小数值

函数max()求列表中的最大值

函数sum()求数字列表的和

numbers=[1, 4, 7]
print('max:',max(numbers))
print('min:',min(numbers))
print('sum:',sum(numbers))

结果:

max: 7
min: 1
sum: 12

列表解析,将多行代码合为一行达到同样的效果

Num = [pow(value,3) for value in range(1,11)]
print('通过列表解析输出1到10的立方',Num)

结果:

通过列表解析输出1到10的立方 [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

使用列表的一部分—切片

#name[index1:index2]访问列表从index1到index-1的元素
#name[:]   //访问全部元素
#name[0:]  //访问从第一个元素开始到最后一个元素
#name[:5]  //访问从列表开头(第一个元素)到第四(5-1)个元素
names = ['A','C','D','E']
print(names[0:3])
#遍历切片
for name in names[:3]:
    print(name)

结果:

[‘A’, ‘C’, ‘D’]

列表的复制

创建包含一整个列表的切片,然后复制这个切片

print('原始列表names:',names)
#通过复制包含整个name的切片,来复制一个新的列表
newNames = names[:] 
print('复制后列表newNames:',newNames)
names.append('zhangsan')    #在names中加一个元素
print('names:',names)       #输出names列表
newNames.append('lisi')     #在newNames中加另一个元素
print('newName:',newNames)

结果:

原始列表names: [‘A’, ‘C’, ‘D’, ‘E’]
复制后列表newNames: [‘A’, ‘C’, ‘D’, ‘E’]
names: [‘A’, ‘C’, ‘D’, ‘E’, ‘zhangsan’]
newName: [‘A’, ‘C’, ‘D’, ‘E’,‘lisi’]

分析:可以看到names和newNames是两个对象,因为在给俩个列表加不同的元素后,新的两个列表元素不一样

直接复制的时候:

newNames = names 
print('复制后列表newNames:',newNames)
names.append('zhangsan')
newNames.append('lisi')
print('names:',names)
print('newName:',newNames)     

结果:

原始列表names: [‘A’, ‘C’, ‘D’, ‘E’]
复制后列表newNames: [‘A’, ‘C’, ‘D’, ‘E’]
names: [‘A’, ‘C’, ‘D’, ‘E’, ‘zhangsan’, ‘lisi’]
newName: [‘A’, ‘C’,‘D’, ‘E’, ‘zhangsan’, ‘lisi’]

分析:可以看到names和newNames是两个相同的对象,因为在给俩个列表加不同的元素后,新的两个列表元素一样,这说明直接复制的时候只是把原列表的地址给了newNames,也就是说让新列表页指向原列表,这样一来,每次对列表names或者列表nawNames都是在对同一个列表进行操作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值