3 列表循环

编程入门 行业动态 更新时间:2024-10-08 20:33:56

3 <a href=https://www.elefans.com/category/jswz/34/1771047.html style=列表循环"/>

3 列表循环

1 列表循环

for item in lst:  如果你只需要拿到元素
for i in range(len(lst)):  不光需要拿到元素, 还需要拿到索引

in lst

lst = ["小姨多鹤_sb", "linux核心编程_sb", "shell脚本大全_sb", "linux私房菜_sb"]
for item in lst:item = item.replace("_sb", "")print(item)结果
小姨多鹤
linux核心编程
shell脚本大全
linux私房菜

in range

lst = ["小姨多鹤_sb", "linux核心编程_sb", "shell脚本大全_sb", "linux私房菜_sb"]for item in lst:print(item)for i in range(len(lst)):item = lst[i]item = item.replace("_sb", "")lst[i] = item
print(lst)结果
小姨多鹤_sb
linux核心编程_sb
shell脚本大全_sb
linux私房菜_sb
['小姨多鹤', 'linux核心编程', 'shell脚本大全', 'linux私房菜']

2 字典循环

for k in dic: 循环直接拿到每一个key
for k, v in dic.items(): 循环字典直接拿到key和value
第一种 in dic
dic = {"赵本山": "劝说小丑", "范伟": "道士下山", "郭德纲": "祖宗十九代"}for item in dic:print(item, dic[item])结果
赵本山 劝说小丑
范伟 道士下山
郭德纲 祖宗十九代
第二种,in dic.items() 可以直接拿到k, v
dic = {"赵本山": "劝说小丑", "范伟": "道士下山", "郭德纲": "祖宗十九代"}
for k, v in dic.items():  # (key, value)print(k, v)结果
赵本山 劝说小丑
范伟 道士下山
郭德纲 祖宗十九代

自动解包

a, b = (1, 2)  # 元祖自动解包, 解构
print(a)
print(b)结果
1
2

3 列表和字典的删除-有大坑

列表的删除,把需要删除的元素找到,然后存到新列表,循环新列表,从老列表中删除。

原因:删除索引0后,1(张无忌)会移动到0位置,后面依次类推,张大郎移到1,第二次循环时会删除张大朗,而张无忌没有删除。

lst = ["张本山", "张无忌", "张大郎", "张alex", "小妞"]
new_lst = []
for item in lst:if item.startswith("张"):# lst.remove(item) # 删除,删除索引0后,1(张无忌)会移动到0位置,后面依次类推,张大郎                         new_lst.append(item) # 把要删除的内容记录在一个新列表中
for item in new_lst:  # 循环新列表, 删除老列表lst.remove(item)
print(lst)结果
['小妞']

字典的删除

dic = {"赵本山": "劝说小丑", "范伟": "道士下山", "郭德纲": "祖宗十九代"}
lst = []
for k in dic:print("取出key", k)lst.append(k)
print("存到新列表",lst)
print("分割线")
for item in lst:print("删除key",item)dic.pop(item)print(dic)结果
取出key 赵本山
取出key 范伟
取出key 郭德纲
存到新列表 ['赵本山', '范伟', '郭德纲']
分割线
删除key 赵本山
删除key 范伟
删除key 郭德纲
{}

案列统计车牌数量

思路

# 1. 拿到每一个车牌子
# 2. 拿到车牌的简称
# 3. 通过简称去拿省份名称
# 4. 统计车牌的数量????
cars = ['鲁A32444', '鲁B12333', '京B8989M', '黑C49678', '黑C46555', '沪B25041', '黑C34567']
locations = {'沪': '上海', '京': '北京', '黑': '黑龙江', '鲁': '山东', '鄂': '湖北', '湘': '湖南'}result = {}
for car in cars:  # 鲁A32444loc = car[0]  # 鲁prov = locations[loc]  # 山东# 分成两种情况# 如果字典中有这个省份. 只需要value+1即可if result.get(prov):  # 去字典中查找这个省份信息. 如果找到了. 返回的是数字, 如果找不到返回的是Noneresult[prov] += 1else:  # 如果字典中没有这个省份. 需要新增一个省份:1result[prov] = 1print(result)结果
{'山东': 2, '北京': 1, '黑龙江': 3, '上海': 1}

4  编码

ascii : 英文大小写字母, 数字, 标点符号(英文), 计算机操作符一个ascii由8bit01 组成. 256个文字 只用到了前7位. 字节. 1个byte表示8个01
gbk : 国标码(guo biao kuo) 16个01组成    2byte,  最多能表示65536个文字.中文, 日文, 韩文, 蒙古文, 藏文. 繁体中文. 兼容ascii
unicode: 万国码, 由32个bit组成, 4byte不能进行存储和传输ucs-2 拿出uncode的一个面进行使用(python默认用的是它)ucs-4 由32个bit组成
utf-8 : unicode的实现, 可变长度的unicode英文:  8bit  1byte欧洲: 16bit  2byte其他: 24bit  3byte
utf-8和gbk不能直接转换
编码:  encode()
解码:  decode()

5 文件操作

open(文件路径, mode="模式", encoding="编码规则")
for line in f:读取文件中的每一行数据
f.read()
f.write()
模式:r 只读w 只写a 只能追加写+ 扩展r+ 读写操作w+ 写读操作a+ 追加写读操作b bytes 读取和写入非文本文件.exe  .zip .rar .jpg

r读文件

f = open("E:/资料/test.txt", mode="r", encoding="utf-8")
print(f.read())  # 文件的内容全部读取出来,如果文件大容易导致内存溢出问题
# print(f.read(3)) # 读3行# 推荐
for line in f: # 把文件中的每一行读取出来print(line.strip())
f.close()

把print输出换行的\n替换为空

print("娃哈哈", end="")
print("矿泉水", end="")
结果
娃哈哈矿泉水

w写文件,每次执行open时,会清空原文件

# 写: 能创建文件, w模式会自动的清空源文件
f = open("呵呵呵.txt", mode="w", encoding="utf-8")
f.write("你好\n")
f.write("我也好")
f.close()
a写文件,追加
# a: append追加. 在原来文件的基础上写入内容
f = open("哈哈哈.txt", mode="a", encoding="utf-8")
f.write("你好111")
f.close()
r+读写模式
f = open("哈哈哈.txt", mode="r+", encoding="utf-8")
print(f.read())
f.write("我很好")
f.close()

文件复制:不要有编码,边复制边写

f = open()  f.close()等同于with open() as f
with open("c:/崔万志-不抱怨-靠自己.flv", mode="rb") as f1, open("d:/崔万志-不抱怨-靠自己.flv", mode="wb") as f2:for part in f1:f2.write(part)

文件剪切

import os # 导入os模块
with open("c:/崔万志-不抱怨-靠自己.flv", mode="rb") as f1, open("d:/崔万志-不抱怨-靠自己.flv", mode="wb") as f2:for part in f1:f2.write(part)
os.remove("d:/崔万志-不抱怨-靠自己.flv")

 

更多推荐

3 列表循环

本文发布于:2024-02-07 03:31:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1752903.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:列表

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!