我总是惊讶于使用 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 存储库的链接,其中包含所有这些单行代码。随意贡献更多令人惊叹的单线。快乐编码!