每个人都应该知道的 50 个 Python 单线

我总是惊讶于使用  Python  可以轻松完成任务。一些繁琐的任务可以使用 python 在一行代码中完成。我从 python 中收集了一些我最喜欢的 one-liners。我在下面列出了其中的 50 个,并为每个示例提供了示例。

1.字谜

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">from collections import Counter 

s1 = 'below' 
s2 = 'elbow' 

print('anagram') if Counter(s1) == Counter(s2) else print('not an anagram')</span></span></span>

2. 二进制转十进制

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">十进制 = int('1010', 2)
打印(十进制)#10</span></span></span>

3. 字符串转小写

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">"嗨,我的名字是 Allwin".lower() 
# '
嗨,我的名字是 Allwin ' "嗨,我的名字是 Allwin".casefold() 
# '嗨,我的名字是 allwin'</span></span></span>

4. 字符串转大写

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">“嗨,我的名字是 Allwin”.upper() 
# '嗨,我的名字是 ALLWIN'</span></span></span>

5. 字符串转字节

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">"使用编码方法将字符串转换为字节".encode() 
# b'使用编码方法将字符串转换为字节'</span></span></span>

6.复制文件

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">进口锡尔;Shutil.copyfile('source.txt', 'dest.txt')</span></span></span>

7. 快速排序

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">qsort = lambda l : l if len(l)<=1 else qsort([x for x in l[1:] if x < l[0]]) + [l[0]] + qsort([x for x在 l[1:] 如果 x >= l[0]])</span></span></span>

8. n 个连续数之和

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">总和(范围(0,n + 1</span></span></span>

9.交换两个值

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">a,b = b,a</span></span></span>

10. 斐波那契数列

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">lambda x: x 如果 x<=1 否则 fib(x-1) + fib(x-2)]</span></span></span>

11. 将嵌套列表合并为一个列表

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">[main_list 中子列表的项目,子列表中的项目]</span></span></span>

12. 运行一个 HTTP 服务器

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">python3 -m http.server 8000</span></span></span>

13.反转列表

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">数字[::-1]</span></span></span>

14. 一个数的因数

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">导入数学;fact_5 = math.factorial(5)</span></span></span>

15. 使用“for”和“if”的列表理解

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">even_list = [number for number in [1, 2, 3, 4] if number % 2 == 0] 
# [2, 4]</span></span></span>

16. 列表中最长的字符串

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929"># words = ['This', 'is', 'a', 'list', 'of', 'words']</span><span style="color:#292929">最大(字,键= len)</span><span style="color:#292929"># '字'</span></span></span>

17.列表理解

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">li = [num for num in range(0,100)] 
# 这将创建一个从 0 到 99 的数字列表</span></span></span>

18.设置理解

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">num_set = { num for num in range(0,100)} 
# 这将创建一组从 0 到 99 的数字</span></span></span>

19. 词典理解

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">dict_numbers = {x:x*x for x in range(1,5) } 
# {1: 1, 2: 4, 3: 9, 4: 16}</span></span></span>

20. 否则

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">打印(“偶数”)如果 4%2==0 否则打印(“奇数”)</span></span></span>

21.无限while循环

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">而 1:0</span></span></span>

22.检查数据类型

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">isinstance(2, int) 
isinstance("allwin", str) 
isinstance([3,4,1997], list)</span></span></span>

23.While 循环

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">a=5
而 a > 0: a = a - 1; 打印(一)</span></span></span>

24.使用print语句写入文件

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">print("Hello, World!", file=open('file.txt', 'w'))</span></span></span>

25.统计一个字符在字符串中出现的频率

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">打印(“伞”。计数('l'))</span><span style="color:#292929"># 2</span></span></span>

26.合并两个列表

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">list1.extend(list2)</span><span style="color:#292929"># 列表2的内容将被添加到列表1</span></span></span>

27. 合并两个字典

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">dict1.update(dict2) 
# 字典2的内容会添加到字典1中</span></span></span>

28.合并两组

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">set1.update(set2) 
# set2 的内容将被复制到 set1</span></span></span>

29. 时间戳

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">导入时间;打印(时间。时间())</span></span></span>

30.最频繁的元素

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">数字 = [9, 4, 5, 4, 4, 5, 9, 5, 4] 
most_frequent_element = max(set(test_list), key=test_list.count) 
# 4</span></span></span>

31.嵌套列表理解

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">numbers = [[num] for num in range(10)] 
# [[0], [1], [2], [3], [4], [5], [6], [7], [8] ], [9]]</span></span></span>

32.八进制转十进制

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">打印(整数('30',8))
#24</span></span></span>

33. 将键值对转换为字典

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">dict(name='allwin', 年龄=23)</span></span></span>

34.求商和余数

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">商,余数 = divmod(4,5)</span></span></span>

35. 从列表中删除重复元素

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">列表(设置([4, 4, 5, 5, 6]))</span></span></span>

36.按升序排序列表

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">排序([5, 2, 9, 1])</span><span style="color:#292929"># [1, 2, 5, 9]</span></span></span>

37.按降序排列列表

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">排序([5, 2, 9, 1],反向=真)</span><span style="color:#292929"># [9, 5, 2, 1]</span></span></span>

38.获取一串小写字母

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">导入字符串;打印(string.ascii_lowercase)
#ABCDEFGHIJKLMNOPQRSTUVWXYZ</span></span></span>

39.获取一串大写字母

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">导入字符串;打印(string.ascii_uppercase)
#ABCDEFGHIJKLMNOPQRSTUVWXYZ</span></span></span>

40.获取0到9的一串数字

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">导入字符串;打印(字符串。数字)
# 0123456789</span></span></span>

41.十六进制转十进制

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">打印(int('da9',16))
#3497</span></span></span>

42. 人类可读的日期时间

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">导入时间;打印(time.ctime()) 
# 2020 年 8 月 13 日星期四 20:16:23</span></span></span>

43. 将字符串列表转换为整数

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">list(map(int, ['1', '2', '3'])) 
# [1, 2, 3]</span></span></span>

44. 用键对字典进行排序

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929"># {'one': 1, 'four': 4, 'eight': 8} 
{key:d[key] for key in sorted(d.keys())} 
# {'eight': 8, 'four' : 4, '一个': 1}</span></span></span>

45. 用值对字典进行排序

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929"># x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} 
{k: v for k, v in sorted(x.items(), key=lambda item: item[1] )} 
# {0: 0, 2: 1, 1: 2, 4: 3, 3: 4}</span></span></span>

46. 旋转列表

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929"># li = [1,2,3,4,5]</span><span style="color:#292929"># 从右到左
li[n:] + li[:n] # n 是旋转次数
li[2:] + li[:2] 
[3, 4, 5, 1, 2]</span><span style="color:#292929"># 从左到右
li[-n:] + li[:-n] 
li[-1:] + li[:-1] 
[5, 1, 2, 3, 4]</span></span></span>

47.从字符串中删除数字

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">''.join(list(filter(lambda x: x.isalpha(), 'abc123def4fg56vcg2'))) 
# abcdeffgvcg</span></span></span>

48.转置矩阵

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">list(list(x) for x in zip(*old_list)) 
# old_list = [[1, 2, 3], [3, 4, 6], [5, 6, 7]] 
# [[1, 3, 5], [2, 4, 6], [3, 6, 7]]</span></span></span>

49. 从列表中过滤偶数

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">list(filter(lambda x: x%2 == 0, [1, 2, 3, 4, 5, 6] )) 
# [2, 4, 6]</span></span></span>

50. 解包价值

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">a, *b, c = [1, 2, 3, 4, 5]
打印(a) # 1
打印(b) # [2, 3, 4]
打印(c) # 5</span></span></span>

结论

我在下面提供了指向我的 Github 存储库的链接,其中包含所有这些单行代码。随意贡献更多令人惊叹的单线。快乐编码!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pxr007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值