龙空技术网

python3进阶三:数据结构的高级操作

爱编程的二大爷 223

前言:

当前大家对“python高级写法”可能比较看重,姐妹们都想要了解一些“python高级写法”的相关知识。那么小编在网上汇集了一些关于“python高级写法””的相关内容,希望各位老铁们能喜欢,同学们快快来学习一下吧!

在基础中我们学习了数据结构,包含了列表、元组、字典三种结构,这三种结构都有特殊操作可以节省非常多的代码:

1、列表和元组;

我们常见的列表为list = ['a','e',''i','o','u']

要取列表的前三个元素,一般的写法是 list[0],list[1],list[3]

或者用循环提取:

tiqu = []

for i in range(3):

tiqu.append(list[i])

都行,python 提供了最简洁的方法

list[:3]

一句即可,意思是从第0个元素开始算起,直到第三个为止

list[2:4]只提取第二个和第三个,还能够list[-3:-1]取倒数第三个和倒数第二个元素

如果从最后一个算起或者第一个算可以用这种写法list[:4]和list[-2:],复制整个列表可以用list[:],这样大大减少了代码量

还有一种情况,首先我们建立一个0-99的列表啊a =list(range(100))

然后我们取出偶数的列表a[::2],同理我们可以设定五的倍数a[::5],也可以直接提取20以内的偶数a[:20:2]

同理字符串是都属于列表 b=''我要取主机名称可以直接b[4:],结果为toutiao.com,如果只要主机名

b[4:-4]这种写法即可提取

元组是一种特殊的列表,操作起来是一样的只是结果也是元组

2、迭代

给一定一个列表或者元组我们用循环语句来历遍整个列表或者元组我们称之为迭代

a=[1,2,3,4,5,6]

for i in a:

print(i)

如果数据是字典也可以迭代

b = {'a':20,'b':30,'c':40,'d':50}

>>> for key in b:

... print(key)

...

a

b

c

d

可以看出这里只遍历了键没有遍历值,要遍历值需要用到字典的方法vlaues()

for i in b.values():

... print(i)

...

20

30

25

78

90

如果要同时迭代键和值要用到字典的items()方法

>>> for k, v in b.items():

... print(k,v)

...

a 20

b 30

c 25

d 78

e 90

3、列表的生成

前文我们已经用过了这种方法list(range(1,100))可以生成1-99的列表

如果要生成1*1,2*2,3*3...10*10

我们就要用到循环了

l=[]

for i in range(1,11):

l.append(i*i)

这种写法显然不是python的风格

可以直接写成[x*x for x in range(1,11)]

是不是很简单,只要你把循环体内的规则写到最前面,后面再跟循环式就能得到你想要的列表;

两层循环也可以

>>> [m + n for m in 'ABC' for n in 'XYZ']

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

今天的内容包含了列表迭代生成器,主要是输据方面的您学会了吗?有什么疑问可以给我留言哦

标签: #python高级写法