python重复上一条语句_你可能不知道的Python小技巧

注:以下技巧基于Python3

交换变量值

a, b = 1, 2print("赋值:", a, b)# 交换变量值a, b = b, a

print("交换:", a, b)

赋值: 1 2

交换: 2 1

链式比较

a = 5

print(1 < a < 10)

print(5 < a < 10)

True

False

字符串格式化f-Strings

# python3.6开始支持

name = "Jack"

print(f"Hello {name}")

Hello Jack

字符串分割次数

# 比如将url用"/"分割,只从右边分割一次,获取最后的路径

url = "http://www.test.com/page/page/12345"

# 从右边开始以"/"分割一次

result = url.rsplit('/', 1)

print(result)

# 取第二个元素

print(result[1])

['http://www.test.com/page/page', '12345']

12345

获取列表中最后一个元素

a = [1, 2, 3]

# 最后一个元素

print(a[-1])

3

去除列表中的重复项

a = [1, 2, 4, 5, 5, 7, 4, 9]

# 去重

a = list(set(a))

print(a)

[1, 2, 4, 5, 7, 9]

反转列表

a = [1, 2, 3]

# 反转

b = a[::-1]

print(b)

[3, 2, 1]

统计元素个数

from collections import Counter

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

count = Counter(a)

print(count)

Counter({'d': 5, 'b': 3, 'a': 2, 'c': 1})

将列表用逗号(也可以是其他任意字符)拼接成字符串

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

print(','.join(a))

a,b,c

循环列表时获取元素索引

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

for index,v in enumerate(a):

print(index, v)

0 a

1 b

2 c

获取两个列表中的相同项

l1 = [1, 2, 3, 4, 5]

l2 = [1, 2, 5, 6, 7, 8]

l = list(set(l1) & set(l2))

print(l)

[1, 2, 5]

获取列表第一项、最后一项和中间部分

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

first, *rest, last = a

print(first)

print(rest)

print(last)

1

[2, 3, 4]

5

将二级列表转为一级列表

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

# 转成一级列表

b = [x for _list in a for x in _list]

print(b)

[1, 2, 3, 4]

将两个链表合成一个列表

l1 = [1, 2] l2 = [3, 4]

# 方法1:合并列表成另外一个列表

l3 = l1 + l2

print(l3)

# 方法2:将列表2合并到列表

1l1.extend(l2)

print(l1)

[1, 2, 3, 4]

[1, 2, 3, 4]

将两个列表合成一个字典

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

l2 = [1, 2, 3]

d = dict(zip(l1, l2))

print(d)

{'a': 1, 'b': 2, 'c': 3}

字典按值排序

d = {"a": 3, "b": 4, "c": 2, "d": 1}

reversed_d = sorted(d.items(), key=lambda item: item[1]) print(reversed_d)

[('d', 1), ('c', 2), ('a', 3), ('b', 4)]

设置字典中的默认值

d = {'a': 1, 'b': 2}

# 若不存在,设置默认值

d.setdefault('c', 3)

print(d)

# 若已存在,不会更新

d.setdefault('b', 3)

print(d)

{'a': 1, 'b': 2, 'c': 3}

{'a': 1, 'b': 2, 'c': 3}

字典get方法

d = {'a': 1, 'c': 3}

print(d.get('c', 33))# get方法,若键不存在,取后面的默认值print(d.get('b', 33))

3

33

字典中的键值反转

d = {1: 'a', 2: 'b', 3: 'c'}

invert_d = {v: k for k, v in d.items()}

print(invert_d)

{'a': 1, 'b': 2, 'c': 3}

获取两个字典中的公共项

d1 = {'a': 1, 'b': 2, 'c': 3}

d2 = {'b': 4, 'c': 3, 'd': 6}

# 公共键

print(d1.keys() & d2.keys())

# 公共键值对

print(d1.items() & d2.items())

{'c', 'b'}

{('c', 3)}

将两个字典合并成一个字典

d1 = {'a': 1} d2 = {'b': 2}

# 合并字典

d3 = {**d1, **d2}

print(d3)

{'a': 1, 'b': 2}

For-Else语句

for i in [1, 2, 3]:

if i == 0:

break

else:

print("没有执行break")

没有执行break

While-Else

i = 5

while i > 1:

print(i)

i -= 1

else:

# 注:当while有break,else下面的不会执行,这一点与For-Else不同,值得注意

print("循环结束")

5

4

3

2

循环结束

try-except-else 语句

Python中处理错误异常可以简单采用try-except语句,其实还可以添加一个else语句,它是指在没有发生异常时,执行完try语句后运行的语句。此外,如果需要运行是否发现异常的都需要执行的代码,可以采用finally,示例如下:

a, b = 1,2

try:

print(a/b)

except Exception as _:

print(e)

else:

print("没有异常发生")

finally:

print("无论异常是否发生都会执行")

0.5

没有异常发生

无论异常是否发生都会执行

获取当前文件夹名

import os

os.path.basename(os.getcwd())

'fun_of_python'

以上就是整理的一些小技巧,希望对大家有所帮助,欢迎补充交流~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值