python学习Day7--字符串操作
【主要内容】
1. 补充基础数据类型的相关知识点
1. str. join() 把列表变成字符串
2. 列表不能再循环的时候删除. 因为索引会跟着改变
3. 字典也不能直接循环删除.
把要删除的内容记录在列表中. 循环列表. 删除原列表, 字典中的数据
4. fromkeys() 不会对原来的字典产生影响. 产生新字典(神坑, 考试)
5. set集合. 不重复, 无序.
6. 想转换成什么.就用什么括起来
7. 深浅拷贝
1. 直接赋值. 两个变量指向同一个对象.
2. 浅拷贝:只拷贝第一层内容. copy()
3. 深度拷贝: 对象中的所有内容都会被拷贝一份
import copy
copy.deepcopy()
【代码】
1、list删除
# lst = ["我不是药神", "西游记", "西红柿首富", "天龙八部"]
#
# # lst.clear()
# # list在循环的时候不能删. 因为会改变索引
# del_lst = []
# for el in lst:
# del_lst.append(el) # 记录下来要删除的内容
#
# for el in del_lst: # 循环记录的内容
# lst.remove(el) # 删除原来的内容
# print(lst) # lst = ["周杰伦", "周润发", "周星星", "马化腾", "周树人"]
# 删除掉姓周的人的信息
# del_lst = []
# for el in lst:
# if el.startswith("周"):
# del_lst.append(el)
#
# for el in del_lst:
# lst.remove(el)
# print(lst) # 字典也不能在循环的时候更改大小
# dic = {"a":"123", "b":"456"}
# for k in dic:
# dic.setdefault("c", "123") # a = dict.fromkeys(["jj", 'jay', 'taibai'], "sb") # 静态方法 # dic = {"a":"123"}
# s = dic.fromkeys("王健林", "思聪" ) # 返回给你一个新字典
# print(s)
2、set集合
# s = set() # 空集合
# dic = dict()
# s = str()
# i = int()
# lst = list()
# print(i) # s = {"王者荣耀", "英雄联盟", "王者荣耀", 123, True, True}
# print(s)
# s = {123, {1,2,3}} # 不合法
# print(s) # lst = ["张强", "李强", "王磊", "刘伟", "张伟", "张伟", "刘洋", "刘洋"]
# s = set(lst) # 去重复
# print(s)
#
# # 变回来
# lst = list(s)
# print(lst)
3、深浅拷贝
# lst1 = ["金毛狮王", "紫衫龙王", "白眉鹰王", "青衣服往"]
# lst2 = lst1 # 列表, 进行赋值操作. 实际上是引用内存地址的赋值. 内存中此时只有一个列表. 两个变量指向一个列表
#
# lst2.append("杨做事") # 对期中的一个进行操作. 两个都跟着变
# print(lst2)
# print(lst1) # 浅拷贝 copy 创建新对象
# lst1 = ["赵本山", "刘能", "赵四"]
# # lst2 = lst1.copy() # lst2 和lst1 不是一个对象了
# lst2 = lst1[:] # 切片会产生新的对象
# lst1.append("谢大脚")
# print(lst1, lst2)
# # print(id(lst1), id(lst2)) # lst1 = ["超人", "七龙珠", "葫芦娃", "山中小猎人", ["金城武", "王力宏", "渣渣辉"]]
# lst2 = lst1.copy() # 拷贝. 浅拷贝 拷贝第一层
#
# lst1[4].append("大阳哥")
#
# print(lst1, lst2)
# 深拷贝 import copy
lst1 = ["超人", "七龙珠", "葫芦娃", "山中小猎人", ["金城武", "王力宏", "渣渣辉"]]
lst2 = copy.deepcopy(lst1) # 把lst1扔进去进行深度拷贝 , 包括内部的所有内容进行拷贝
lst1[4].append("大阳哥")
print(lst1, lst2) # 为什么要有深浅拷贝
# 拷贝比创建对象的过程要快
4、作业与练习
#******************上次作业*****************
'''
#1、评委打分,要求在5——10之间
i=1
while i<11:
fen=input("请评委%d打分:" % i)
if int(fen)>5 and int(fen)<10:
print("OK的分数")
else:
print("不在范围的打分")
continue
i = i+ 1 #2、
lst=["斤瓶酶","解救吾先生","美国往事","西西里的美丽传说"]
dic={}
for el in lst:
fen=input("请给%s电影进行打分:" % el)
dic[el]=int(fen)
print(dic) #3、读数
dic={
"-":"负",
"1":"yi",
"2":"er",
"3":"san",
"4":"si",
"5":"wu",
"6":"liu",
"7":"qi",
"8":"ba",
"9":"jiu",
"0":"ling",
".":"dian"
}
content=input("请输入一个数:")
for c in content:
print(dic[c],end=" ")
else:
print()
print("你好啊") #4、求取主播的工资平均值并干掉低于平均值的主播
zhubo={"卢本伟":99999,"冯提莫":140000,"陈一发儿":150000,"金老板":5000}
sum=0
for value in zhubo.values():
sum=sum+value
print(sum/len(zhubo)) avg=sum/len(zhubo)
lst=[]
# 不允许在循环中删除字典中的key
for k,v in zhubo.items():#循环记录要删除的key
if v < avg:
lst.append(k)#列表保存要删除的key
for el in lst:
zhubo.pop(el)
print(zhubo) #**********************今天练习***********************
#循环删除列表里的元素
lst=["我不是药神","西游记","西红柿首富","天龙八部"]
del_list=[] #建立一个要删除的元素空列表
# list在循环的时候不能删,因为会改变索引
for el in lst:
del_list.append(el) #记录下要删除的内容
for el in del_list: #循环记录内容
lst.remove(el) #删除原来的内容
print(lst) lst=["周树人","周润发","周杰伦","周星星","马化腾","周大大"]
del_list=[]
for el in lst:
if "周"in el:
del_list.append(el)
else:
pass
for el in del_list:
lst.remove(el)
print(lst)
'''
python学习Day7--字符串操作的更多相关文章
- [Python] Python 学习 - 可视化数据操作(一)
Python 学习 - 可视化数据操作(一) GitHub:https://github.com/liqingwen2015/my_data_view 目录 折线图 散点图 随机漫步 骰子点数概率 文 ...
- Python中的字符串操作总结(Python3.6.1版本)
Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...
- python入门7 字符串操作
字符串操作 #coding:utf-8 #/usr/bin/python """ 2018-11-03 dinghanhua 字符串操作 ""&quo ...
- 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况
一句python,一句R︱python中的字符串操作.中文乱码.NaN情况 先学了R,最近刚刚上手Python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句pytho ...
- 【Python自动化Excel】Python与pandas字符串操作
Python之所以能够成为流行的数据分析语言,有一部分原因在于其简洁易用的字符串处理能力. Python的字符串对象封装了很多开箱即用的内置方法,处理单个字符串时十分方便:对于Excel.csv等表格 ...
- python学习之“切片操作从入门到精通”
在python学习开发的过程中,我们总是不断的要对List(列表),Tuple(元组)有取值操作:假如我们有一个列表List1现在想取出1其中的前5个元素,改怎么操作呢? >>> L ...
- python 学习笔记 redis操作
Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...
- Python学习笔记-字符串
Python之使用字符串 1.所有的标准序列操作(索引,分片,乘法,判断成员资格,求长度,取最小值,最大值)对字符串同样适用.但是字符串都是不可变的. 2.字符串格式化使用字符串格式化操作符即%. f ...
- python学习笔记:文件操作和集合(转)
转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...
- python学习:字符串
字符串 #字符串操作# 对应操作:# 1.重复输出字符串# print('hello'*2)# 2.[],[:]通过索引获取字符串中字符,这里和列表的切片操作是相同的,具体内容见列表#print('h ...
随机推荐
- tomcat启动慢问题
sed -i 's/securerandom\.source\=file\:\/dev\/random/securerandom\.source\=file\:\/dev\/urandom/g' $J ...
- ssh保持连接不断开
使用ssh连接服务器,长时间不使用,会自动断开,控制台会卡死无法使用,现提供以下两个方案解决这个问题: [服务器主动保持连接] 修改服务器配置文件: vim /etc/ssh/sshd_config ...
- c++ 屏幕截图指定窗口句柄后台截图返回位图句柄
/根据窗口句柄后台截图保存成BMP位图文件并且显示到picture 控件上 void GetScreenBmp(HWND hwnd, int left, int top, int width, int ...
- 洛谷$P4585\ [FJOI2015]$火星商店问题 线段树+$trie$树
正解:线段树+$trie$树 解题报告: 传送门$QwQ$ $umm$题目有点儿长我先写下题目大意趴$QwQ$,就说有$n$个初始均为空的集合和$m$次操作,每次操作为向某个集合内加入一个数$x$,或 ...
- 机器学习之路--Numpy
常用代码 ndarray.dtype 数据类型必须是一样的 常用代码 import numpy #numpy读取文件 world_alcohol = numpy.genfromtxt("wo ...
- Java中数组的使用
1.声明数组 1.1声明一维数组 声明一维数组有下列两种格式: 数组的元素类型 数组名字[ ]; 数组的元素类型[ ] 数组名字 1.2声明二维数组 声明二维数组有下列两种格式: 数组的 ...
- vue传值(父子传值,非父子传值)
vue组件传值,分为父子传值和非父子传值,父子传值又分为父传子和子传父. 组件之间的传值,实现了数据的联动,是从操作Dom到操作数据一个跳转性的突破,在学习vue双向绑定原理之后, 这种观念就应该继续 ...
- 梳理js数组去重中代码比较简洁的方案
一.es6 Set去重 function removal(arr) { return Array.from(new Set(arr)) } let arr=[1,2,1,3,4,5,5] remova ...
- TensorFlow——Graph的基本操作
1.创建图 在tensorflow中,一个程序默认是建立一个图的,除了系统自动建立图以外,我们还可以手动建立图,并做一些其他的操作. 下面我们使用tf.Graph函数建立图,使用tf.get_defa ...
- 怎么将文件夹上传到GitHub上
1. 在GitHub上新建一个仓库地址: http://github.com/......git 2. 在需要上传的文件夹目录下,运行 git init 初始化git: 3. 运行git ad ...