社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

50条有趣的Python一行代码,建议收藏!

happy科研 • 3 年前 • 416 次点击  


大家好,我是小F。


在学习Python的过程中,总会发现Python能够轻易的解决许多问题。


一些复杂的任务,甚至可以使用一行Python代码就能搞定


下面,小F给大家介绍50个有趣的Python一行代码,都很实用。


希望大家能从中找到对自己有帮助的技巧。



▍1、字母异位词


两个单词如果包含相同的字母,次序不同,则称为字母易位词(anagram)。


例如,“silent”和“listen”是字母易位词,而“apple”和“aplee”不是易位词。


from collections import Counter

s1 = 'below'
s2 = 'elbow'

print('anagram'if Counter(s1) == Counter(s2) else print('not an anagram')


使用一行Python代码,就能判断出来了。



▍2、二进制转十进制


decimal = int('1010'2)
print(decimal) #10



▍3、将字符串转换为小写


print("Hi my name is XiaoF".lower())
# 'hi my name is xiaof'

print("Hi my name is XiaoF".casefold())
# 'hi my name is xiaof'


▍4、将字符串转换为大写


print("hi my name is XiaoF".upper())
# 'HI MY NAME IS XIAOF'



▍5、将字符串转换为字节


print("convert string to bytes using encode method".encode())
# b'convert string to bytes using encode method'



▍6、拷贝文件





    

import shutil

shutil.copyfile('source.txt''dest.txt')



▍7、快速排序


qsort = lambda l: l if len(l) <= 1 else qsort([x for x in l[1:] if x 0]]) + [l[0]] + qsort([x for x in l[1:] if x >= l[0]])

print(qsort([172911971035]))
# [5, 11, 17, 29, 97, 103]



▍8、n个连续数的和


n = 10

print(sum(range(0, n+1)))
# 55



▍9、交换两个变量的值


a,b = b,a



▍10、斐波纳契数列


fib = lambda x: x if x<=1 else fib(x-1) + fib(x-2)

print(fib(20))
# 6765



▍11、将嵌套列表合并为一个列表


main_list = [[012], [111213], [525354]]

result = [item for sublist in main_list for item in sublist]
print(result)

>
[012111213525354]



▍12、运行一个HTTP服务器


python3 -m http.server 8000
python2 -m SimpleHTTPServer



▍13、反转列表


numbers = [012111213525354]

print(numbers[::-1])
# [54, 53, 52, 13, 12, 11, 2, 1, 0]



▍14、阶乘


import math

fact_5 = math.factorial(5)
print(fact_5)
# 120



▍15、在列表推导式中使用for和if


even_list = [number for number in [1234if number % 2  == 0]

print(even_list)
# [2, 4]



▍16、列表中最长的字符串


words = ['This''is''a''list''of''words']

result = max(words, key=len)
print(result)
# 'words'



▍17、列表推导式


li = [num for num in range(010)]

print(li)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]



▍18、集合推导式


num_set = {num for num in range(010)}

print(num_set)
# {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}



▍19、字典推导式


dict_numbers = {x: x*x for x in range(15)}

print(dict_numbers)
# {1: 1, 2: 4, 3: 9, 4: 16}



▍20、if-else


print("even"if 4 % 2==0 else print("odd")



▍21、无限循环


while 1:0



▍22、检查数据类型


print(isinstance(2, int))
# True

print(isinstance("allwin", str))
# True

print(isinstance([3 41997], list))
# True



▍23、While循环


a = 5

while a > 0:
    a = a - 1

print(a)
# 0



▍24、使用print语句写入文件


print("Hello, World!", file=open('file.txt''w'))


既可打印出信息,还能将信息保存文件。



▍25、计算一个字符在字符串中出现的频率


print("umbrella".count('l'))
# 2



▍26、合并列表


list1 = [124]
list2 = ['XiaoF']
list1.extend(list2)

print(list1)
# [1, 2, 4, 'XiaoF']



▍27、合并字典


dict1 = {'name''weiwei''age'23}
dict2 = {'city''Beijing'}
dict1.update(dict2)

print(dict1)
# {'name': 'weiwei', 'age': 23, 'city': 'Beijing'}



▍28、合并集合


set1 = {012}
set2 = {111213}
set1.update(set2)

print(set1)
# {0, 1, 2, 11, 12, 13}



▍29、时间戳


import time

print(time.time())



▍30、列表中出现次数最多的元素


test_list = [945445954]
most_frequent_element = max(set(test_list), key=test_list.count)

print(most_frequent_element)
# 4



▍31、嵌套列表


numbers = [[num] for num in range(10)]

print(numbers)
# [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9]]



▍32、八进制转十进制


print(int('30'8)) 
# 24



▍33、将键值对转换为字典





    

result = dict(name='XiaoF', age=23)

print(result)
# {'name': 'XiaoF', 'age': 23}



▍34、求商和余数


quotient, remainder = divmod(45)

print(quotient, remainder)
# 0 4


divmod()函数返回当参数1除以参数2时,包含商和余数的元组。



▍35、删除列表中的重复项


print(list(set([44556])))
# [4, 5, 6]



▍36、按升序排序列表


print(sorted([5291]))
# [1, 2, 5, 9]



▍37、按降序排 序列表


print(sorted([5291], reverse=True))
# [9, 5, 2, 1]



▍38、获取小写字母表


import string

print(string.ascii_lowercase)
# abcdefghijklmnopqrstuvwxyz



▍39、获取大写字母表

import string

print(string.ascii_uppercase)
# ABCDEFGHIJKLMNOPQRSTUVWXYZ



▍40、获取0到9字符串


import string

print(string.digits)
# 0123456789



▍41、十六进制转十进制


print(int('da9'16))
# 3497



▍42、日期时间


import time

print(time.ctime())
# Thu Aug 13 20:00:00 2021



▍43、将列表中的字符串转换为整数


print(list(map(int, ['1''2''3'])))
# [1, 2, 3]



▍44、用键对字典进行排序


d = {'one'1'four'4'eight' 8}
result = {key: d[key] for key in sorted(d.keys())}

print(result)
# {'eight': 8, 'four': 4, 'one': 1}



▍45、键值对字典进行排序


x = {1234432100}
result = {k: v for k, v in sorted(x.items(), key=lambda item: item[1])}

print(result)
# {0: 0, 2: 1, 1: 2, 4: 3, 3: 4}



▍46、列表旋转


li = [12345]

# li[n:] + li[:n], 右变左
print(li[2:] + li[:2])
# [3, 4, 5, 1, 2]

# li[-n:] + li[:-n], 左变右
print(li[-1:] + li[:-1])
# [5, 1, 2, 3, 4]



▍47、将字符串中的数字移除


message = ''.join(list(filter(lambda x: x.isalpha(), 'abc123def4fg56vcg2')))

print(message)
# abcdeffgvcg



▍48、矩阵变换


old_list = [[123], [346], [567]]
result = list(list(x) for x in zip(*old_list))

print(result)
# [[1, 3, 5], [2, 4, 6], [3, 6, 7]]



▍49、列表过滤


result = list(filter(lambda x: x % 2 == 0, [123456]))

print(result)
# [2, 4, 6]



▍50、解包


a, *b, c = [12345]

print(a) # 1
print(b) # [2, 3, 4]
print(c) # 5



万水千山总是情,点个 👍 行不行



推荐阅读



···  END  ···


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/124368
 
416 次点击