Python教程:切片、迭代、列表生成式

枫铃3年前 (2021-09-30)Python232

切片

序列类型是其元素被顺序放置的一种数据结构类型,这种方式允许通过下标的方式来获得某一个数据元素,或者通过指定下标范围来获得一组序列的元素。这种访问序列的方式叫做切片。

  • 可以使用切片操作的数据类型:list、tuple、字符串。
  • 切片操作的区间是左闭右开。
  • 切片操作的操作符::[] [:] [::]
    L = [‘Michael’, ‘Sarah’, ‘Tracy’, ‘Bob’, ‘Jack’]

#取L中的前三个数据
print(L[0:3]) #[‘Michael’, ‘Sarah’, ‘Tracy’]

#从索引 1 开始,取出 2 个元素出来:
print(L[1:3])

#倒数索引取元素:
print(L[-2:-1])
print(L[-1:])  
print(L[-2:])  

#原样复制
print(L[:]) 

#从头到尾间隔20取数
L1 = list(range(100))
print(L1[::20]) 

执行结果:

['Michael', 'Sarah', 'Tracy']
['Sarah', 'Tracy']
['Bob']
['Jack']
['Bob', 'Jack']
['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
[0, 20, 40, 60, 80]

迭代

给定一个list或者tuple,通过for循环来遍历这个list或者tuple、这种遍历就是迭代(iteration)。
常见的可以迭代的对象有:字符串,列表,元组,字典。

对字典迭代

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
d={'python':1,'php':2,'java':3}

#默认迭代的是key
print("字典默认迭代key:")
for i in d:
    print(i)

print("字典自定义迭代key:")    
#自定义迭代key
for key in d.keys():
    print(key)

print("字典自定义迭代value:")  
#迭代value
for value in d.values():
    print(value)

print("字典自定义同时迭代key和value:")  
#同时迭代key,value
for k , v in d.items():
    print(k,v)

执行结果:

字典默认迭代key:
php
java
python
字典自定义迭代key:
php
java
python
字典自定义迭代value:
2
3
1
字典自定义同时迭代key和value:
php 2
java 3
python 1

对列表迭代

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#对于一个列表
lanage=['python','php','java','c++']

# 第一种:
print("list迭代第一种方法:")
for x in range(len(lanage)):
    print(x,lanage[x])
# 第二种:
print("list迭代第二种方法:")
for i ,value in enumerate(lanage):
    print(i,value)

#在同一行输出:
print("list迭代同一行输出:")
for i ,value in enumerate(lanage):
    print(i,value ,end=',')

执行结果:

list迭代第一种方法:
0 python
1 php
2 java
3 c++
list迭代第二种方法:
0 python
1 php
2 java
3 c++
list迭代同一行输出:
0 python,1 php,2 java,3 c++,

列表生成式

对列表里面的数据进行运算和操作,生成新的列表最高效快速的办法是列表生成式。

# 使用列表生成式对列表数平方

b = range(1, 11)
c = [x*x for x in b]
print(c)

执行结果:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

带if判断

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 提取大于0的数
c = [1, 3, -3, 4, -2, 8, -7, 6]
d = [x for x in c if x > 0]
print(d)

执行结果:

[1, 3, 4, 8, 6]

多个参数

L = [m + n for m in 'ABC' for n in 'XYZ']
print(L) 

执行结果:

['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

相关文章

python取当前时间前后一定间隔的时间点

当前时间 datetime.datetime.now() 时间间隔 datetime.timedelta(参数=数值) #参数࿱...

2道python基础练习

1.随机数(0-100)...

Python3 动态导入模块的两种方式

Python3 动态导入模块的两种方式

动态导入模块就是只知道s...

Python练习题:批量删除多个文件夹内的相同文件

应用场景: 下载的多个文件夹是压缩包,解压后每个文件夹都有某个网站的推广链接,想要批量的删除该文件 使用环境&#...

Python基础数据类型---bytes

由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。