提高python编写习惯,让你的代码更出色(中)

本文介绍了Python中使用for循环进行列表反转、计算元素出现次数、获取子字符串、搜索元素等操作的初级和进阶方法。包括使用切片优化反转列表和获取子字符串,以及利用内置函数如count和swapcase简化字符串操作。同时,展示了如何用zip处理两个相同大小的可迭代对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

本文紧随上文,继续给大家介绍python中可以提高我们代码可读性的一些技巧。


一、使用for循环反转列表

初级

大家很多时候可能会用到一下的方法

list = [1,2,3,4,5,7,8,9,10,12,2354,6754]
out_list = []
for idx in range(len(list),0,-1)://倒着读取列表
    out_list.append(list[idx-1])
print(out_list)

#[6754, 2354, 12, 10, 9, 8, 7, 5, 4, 3, 2, 1]

进阶

了解了python的切片后,我们也可以使用python的切片实现同样的功能

list = [1,2,3,4,5,7,8,9,10,12,2354,6754]
out_list = list[::-1]
print(out_list)

二、使用for循环计算可迭代对象中元素的出现次数

初级

char_list = ["a","b","c","c","e","c"]
target_char = "c"
flag = 0
for i in char_list:
    if target_char == i:
        flag += 1
print(flag) 

# 3

进阶

这里我们可以使用count的办法,而且这个方法在字符串中同样适用

char_list = ["a","b","c","c","e","c"]
print(char_list.count("c"))

string = "andeeefg"
print(string.count("e"))

三、使用for循环获取字符串的子字符串

初级

任务是需要大家返回一个长度为n_chars的子字符串,且从位置start_index开始
刚开始大家都是用for循环,如下图

input_str = "abcdefgdasdasdsa"
start_index = 4
n_chars = 5
output_str = ""
for i in range(n_chars):
    output_str += input_str[i+start_index]
print(output_str)


# efgda

高级

我们仍可以使用切片的办法,将代码一行解决

input_str = "abcdefgdasdasdsa"
start_index = 4
n_chars = 5
output_str = ""
output_str = input_str[start_index:n_chars+start_index]
print(output_str)

#efgda

四、使用for循环在列表中搜索元素

初级

假设想知道某个元素是否存在于列表(或集合)并返回布尔(如果存在则为True,否则为False)

char_list = ["A", "B", "A", "D", "C", "B", "E"]
seacher = "D"

found = False
for i in char_list:
    if i == seacher:
        found = True
        break
print(found)

#True

进阶

这里我们只需要用关键字 in 即可解决问题

char_list = ["A", "B", "A", "D", "C", "B", "E"]
seacher = "D"
print(seacher in char_list)

#True

是不是干净简单,一行就可以解决问题,真棒

五、使用索引量迭代两个相同的size的可迭代对象

初级

对两个列表中的值进行对应,代码如下

list1 = [1,3,6,2,5]
list2 = [0,1,2,3,4]

for idx in range(len(list1)):
    print("value1 =",list1[idx],"value =",list2[idx],sep=" ")

在这里插入图片描述

进阶

可以使用zip()函数,将两个可迭代对象的相应配对

list1 = [1,3,6,2,5]
list2 = [0,1,2,3,4]

for i,j in zip(list1,list2):
    print("value1 =",i,"value2 =",j,sep=" ")

六、使用if条件更改字符串大小写

初级

给定一个字符串,将大写字母变为小写,反之亦然

input_str = "AbCDeFGhIjkl"
output_str = ""

for i in input_str:

    if i.islower():
        output_str += i.upper()

    elif i.isupper():
        output_str += i.lower()

    else:
        output_str += i

print(output_str)

进阶

我们可以使用swapcase()的方法

input_str = "AbCDeFGhIjkl"
output_str = input_str.swapcase()

print(output_str)

# aBcdEfgHiJKL 

总结

今天整理的就暂时先到这里啦,整理不易,你的点赞和关注就是对我最大的支持。有哪里不懂得也可以在评论区指出来哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值