Python实用代码片段分享(二)

在Python编程的旅途中,我们经常会遇到各种问题和挑战。为了帮助大家更高效地编写代码,今天我为大家分享几个实用的Python代码片段。这些代码片段涵盖了从数据处理到文件操作,再到性能优化等多个方面。希望它们能在你的项目中发挥作用!

一、for循环的简写

Python的for循环可以使用列表推导式进行简写,特别是在需要创建一个新列表时。

# 传统for循环  
original_list = [1, 2, 3, 4, 5]  
squared_list = []  
for num in original_list:  
    squared_list.append(num ** 2)  
  
# 简写(列表推导式)  
squared_list = [num ** 2 for num in original_list]

两层for循环:

# 传统写法
for words in ["shun", "wang"]:
    for word in words:
        print(word)

# 简写
[print(word) for words in ['hello', 'world'] for word in words]

二、if的简写

if语句也可以使用条件表达式(三元操作符)进行简写。

# 传统if语句  
x = 10  
if x % 2 == 0:
    y = "even"
else:
    y = "odd" 

# 简写(条件表达式)  
y = "even" if x % 2 == 0 else "odd"

三、for与if的结合简写

在需要同时遍历列表并根据条件过滤元素时,可以结合使用列表推导式。

# 原始写法  
original_list = [1, 2, 3, 4, 5]  
filtered_list = []  
for num in original_list:  
    if num % 2 == 0:  
        filtered_list.append(num)  
  
# 简写(列表推导式结合条件)  
filtered_list = [num for num in original_list if num % 2 == 0]

四、Python内置的map函数

map函数可以将一个函数应用于一个或多个可迭代对象中的每一个元素,并返回一个迭代器。

# 使用map函数  
def square(x):  
    return x ** 2  
  
original_list = [1, 2, 3, 4, 5]  
squared_list = list(map(square, original_list))
# 不使用list方法的话返回结果是个迭代器对象

五、is关键字的正确使用

is关键字用于比较两个对象的身份(即它们是否指向内存中的同一个位置),而不仅仅是值是否相等。

a = [1, 2, 3]  
b = a  
c = [1, 2, 3]  
  
print(a is b)  # 输出: True,因为a和b指向同一个列表  
print(a is c)  # 输出: False,虽然a和c的内容相同,但它们指向不同的内存位置

六、Python中hex方法

hex方法可以将一个整数转换为其十六进制表示的字符串。

num = 255  
hex_num = hex(num)  
print(hex_num)  # 输出: '0xff'

七、字典的items()方法

items()方法返回字典中所有的键值对,通常用于遍历字典。这里强调一下返回结果不是一个列表。

dict1 = {"hello": 99, "world": 100}
print(dict1.items())   # dict_items([('hello', 99), ('world', 100)])
print(list(dict1.items()))   # [('hello', 99), ('world', 100)]

# 使用示例
my_dict = {'a': 1, 'b': 2, 'c': 3}  
for key, value in my_dict.items():  
    print(f"{key}: {value}")  
# 输出:  
# a: 1  
# b: 2  
# c: 3

字典的 items() 方法返回一个“视图对象”(view object),它展示了字典中所有的键值对。在Python 3 中,这个视图对象是一个“字典视图”(dictionary view),它支持迭代操作,并且在字典发生变化时,视图会反映这些变化(除了键或值的添加和删除可能导致视图大小变化外,对于其他字典的修改,视图会保持其“快照”的引用)。

需要注意的是,虽然视图对象本身是不可变的,但它所反映的字典本身是可变的。因此,如果你修改了字典(比如添加或删除键值对),那么视图对象的内容也会相应地改变。

my_dict = {'a': 1, 'b': 2, 'c': 3}  
items_view = my_dict.items()  
  
# 遍历视图对象  
for key, value in items_view:  
    print(key, value)  
  
# 修改字典  
my_dict['d'] = 4  
  
# 再次遍历视图对象,现在会包含新的键值对  
for key, value in items_view:  
    print(key, value)

在本文中,我们分享了几个实用的Python代码片段,包括for循环、if语句、map函数、is关键字、hex方法以及字典的items()方法的简写和正确使用。这些代码片段可以帮助我们更简洁、更高效地编写Python代码。希望它们能在你的项目中发挥作用!如果你有其他好的代码片段或建议,欢迎在评论区分享!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

会三十六变的猫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值