YOLOv8 ModuleNotFoundError处理办法
2025/12/31 18:31:48
s="Hello"# 方式1: for循环直接遍历forcharins:print(char)# H e l l o# 方式2: 使用索引遍历foriinrange(len(s)):print(f"索引{i}:{s[i]}")s="Hello"# enumerate() 获取索引和值forindex,charinenumerate(s):print(f"位置{index}:{char}")# 从指定索引开始forindex,charinenumerate(s,start=1):print(f"第{index}个字符:{char}")s="Hello"# reversed() 反向遍历forcharinreversed(s):print(char)# o l l e H# 使用索引反向foriinrange(len(s)-1,-1,-1):print(s[i])s="Hello World"# 遍历部分字符串forcharins[6:]:# 从第6个字符开始print(char)# W o r l d# 步长遍历forcharins[::2]:# 每隔一个字符print(char)# H l o W r dmy_list=[1,2,3,4,5]# 直接遍历foriteminmy_list:print(item)# 使用索引遍历foriinrange(len(my_list)):print(f"索引{i}:{my_list[i]}")my_list=['apple','banana','cherry']forindex,valueinenumerate(my_list):print(f"第{index}个水果:{value}")# 指定起始索引forindex,valueinenumerate(my_list,start=1):print(f"水果{index}:{value}")my_list=[1,2,3,4,5]i=0whilei<len(my_list):print(my_list[i])i+=1my_list=[1,2,3,4,5]# 遍历并处理(创建新列表)squares=[x**2forxinmy_list]print(squares)# [1, 4, 9, 16, 25]# 带条件的遍历evens=[xforxinmy_listifx%2==0]print(evens)# [2, 4]names=['Alice','Bob','Charlie']scores=[85,92,78]# 同时遍历两个列表forname,scoreinzip(names,scores):print(f"{name}:{score}分")# 使用enumerate + zipfori,(name,score)inenumerate(zip(names,scores)):print(f"第{i+1}名:{name}-{score}分")my_list=[1,2,3,4,5]# reversed() 反向遍历foriteminreversed(my_list):print(item)# 5 4 3 2 1# 使用切片反向foriteminmy_list[::-1]:print(item)# 5 4 3 2 1元组遍历与列表几乎相同(元组是不可变的列表)
my_tuple=(1,2,3,4,5)# 直接遍历foriteminmy_tuple:print(item)# enumerate遍历fori,iteminenumerate(my_tuple):print(f"第{i}个元素:{item}")# 反向遍历foriteminreversed(my_tuple):print(item)my_set={1,2,3,4,5}# 直接遍历(集合无序,遍历顺序不确定)foriteminmy_set:print(item)# 注意:集合没有索引,不能使用索引遍历my_set={5,3,1,4,2}# 排序后遍历foriteminsorted(my_set):print(item)# 1 2 3 4 5# 反向排序遍历foriteminsorted(my_set,reverse=True):print(item)# 5 4 3 2 1my_set={'apple','banana','cherry'}# 遍历时检查forfruitinmy_set:if'a'infruit:print(f"{fruit}包含字母'a'")my_dict={'name':'Alice','age':25,'city':'Beijing'}# 直接遍历键(默认方式)forkeyinmy_dict:print(f"键:{key}")# 显式使用keys()forkeyinmy_dict.keys():print(f"键:{key}")my_dict={'name':'Alice','age':25,'city':'Beijing'}# 遍历值forvalueinmy_dict.values():print(f"值:{value}")my_dict={'name':'Alice','age':25,'city':'Beijing'}# 同时获取键和值forkey,valueinmy_dict.items():print(f"{key}:{value}")# 输出:# name: Alice# age: 25# city: Beijingmy_dict={'name':'Alice','age':25,'city':'Beijing'}# 遍历items并获取索引fori,(key,value)inenumerate(my_dict.items()):print(f"第{i}项:{key}={value}")my_dict={'b':2,'a':1,'c':3}# 按键排序遍历forkeyinsorted(my_dict):print(f"{key}:{my_dict[key]}")# 按值排序遍历forkeyinsorted(my_dict,key=my_dict.get):print(f"{key}:{my_dict[key]}")# 反向排序遍历forkeyinsorted(my_dict,reverse=True):print(f"{key}:{my_dict[key]}")my_dict={'a':1,'b':2,'c':3}# 遍历并创建新字典squared={k:v**2fork,vinmy_dict.items()}print(squared)# {'a': 1, 'b': 4, 'c': 9}# 带条件的遍历filtered={k:vfork,vinmy_dict.items()ifv>1}print(filtered)# {'b': 2, 'c': 3}dict1={'a':1,'b':2}dict2={'a':10,'b':20}# 遍历相同的键forkeyindict1:ifkeyindict2:print(f"{key}:{dict1[key]}+{dict2[key]}={dict1[key]+dict2[key]}")# 列表过滤遍历numbers=[1,2,3,4,5,6]fornuminfilter(lambdax:x%2==0,numbers):print(num)# 2 4 6# 字典过滤遍历my_dict={'a':1,'b':2,'c':3}fork,vinfilter(lambdaitem:item[1]>1,my_dict.items()):print(f"{k}:{v}")# b: 2, c: 3# 列表映射遍历numbers=[1,2,3]fornuminmap(lambdax:x**2,numbers):print(num)# 1 4 9# 内存友好的大列表遍历numbers=range(1000000)# 不立即创建列表# 使用生成器表达式sum_squares=sum(x**2forxinnumbersifx%2==0)print(sum_squares)# 遍历生成器forsquarein(x**2forxinrange(5)):print(square)# 0 1 4 9 16fromitertoolsimportchain,product,permutations# 连接多个可迭代对象list1=[1,2,3]list2=['a','b','c']foriteminchain(list1,list2):print(item)# 1 2 3 a b c# 笛卡尔积colors=['红','蓝']sizes=['S','M']forcolor,sizeinproduct(colors,sizes):print(f"{color}{size}")# 红S 红M 蓝S 蓝M# 排列forpinpermutations('ABC',2):print(p)# ('A', 'B') ('A', 'C') ('B', 'A') ('B', 'C') ('C', 'A') ('C', 'B')| 数据类型 | 常用遍历方式 | 特点 | 示例 |
|---|---|---|---|
| 字符串 | for char in s: | 遍历字符 | for c in “hello”: |
| enumerate(s) | 带索引遍历 | for i, c in enumerate(s): | |
| 列表 | for item in list: | 直接遍历元素 | for x in [1,2,3]: |
| enumerate(list) | 带索引遍历 | for i, x in enumerate(lst): | |
| zip(list1, list2) | 多列表同时遍历 | for a,b in zip(l1,l2): | |
| 元组 | 同列表 | 不可变列表 | for x in (1,2,3): |
| 集合 | for item in set: | 无序遍历 | for x in {1,2,3}: |
| sorted(set) | 有序遍历 | for x in sorted(s): | |
| 字典 | dict.keys() | 遍历键 | for k in d.keys(): |
| dict.values() | 遍历值 | for v in d.values(): | |
| dict.items() | 遍历键值对 | for k,v in d.items(): |
1.优先使用 for-in 直接遍历:最简洁,性能好
2.需要索引时用 enumerate:比 range(len()) 更优雅
3.字典遍历用 items():同时获取键值,效率高
4.大数据用生成器:节省内存,适合大数据处理
5.复杂遍历用 itertools:Python标准库,功能强大