【主要内容】

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--字符串操作的更多相关文章

  1. [Python] Python 学习 - 可视化数据操作(一)

    Python 学习 - 可视化数据操作(一) GitHub:https://github.com/liqingwen2015/my_data_view 目录 折线图 散点图 随机漫步 骰子点数概率 文 ...

  2. Python中的字符串操作总结(Python3.6.1版本)

    Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...

  3. python入门7 字符串操作

    字符串操作 #coding:utf-8 #/usr/bin/python """ 2018-11-03 dinghanhua 字符串操作 ""&quo ...

  4. 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况

    一句python,一句R︱python中的字符串操作.中文乱码.NaN情况 先学了R,最近刚刚上手Python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句pytho ...

  5. 【Python自动化Excel】Python与pandas字符串操作

    Python之所以能够成为流行的数据分析语言,有一部分原因在于其简洁易用的字符串处理能力. Python的字符串对象封装了很多开箱即用的内置方法,处理单个字符串时十分方便:对于Excel.csv等表格 ...

  6. python学习之“切片操作从入门到精通”

    在python学习开发的过程中,我们总是不断的要对List(列表),Tuple(元组)有取值操作:假如我们有一个列表List1现在想取出1其中的前5个元素,改怎么操作呢? >>> L ...

  7. python 学习笔记 redis操作

    Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...

  8. Python学习笔记-字符串

    Python之使用字符串 1.所有的标准序列操作(索引,分片,乘法,判断成员资格,求长度,取最小值,最大值)对字符串同样适用.但是字符串都是不可变的. 2.字符串格式化使用字符串格式化操作符即%. f ...

  9. python学习笔记:文件操作和集合(转)

    转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...

  10. python学习:字符串

    字符串 #字符串操作# 对应操作:# 1.重复输出字符串# print('hello'*2)# 2.[],[:]通过索引获取字符串中字符,这里和列表的切片操作是相同的,具体内容见列表#print('h ...

随机推荐

  1. 【Python3爬虫】突破反爬之应对前端反调试手段

    一.前言 在我们爬取某些网站的时候,会想要打开 DevTools 查看元素或者抓包分析,但按下 F12 的时候,却出现了下面这一幕:   此时网页暂停加载,自动跳转到 Source 页面并打开了一个 ...

  2. Vuex入门实践(中)-多module中的state、mutations、actions和getters

    一.前言 上一篇文章<Vuex入门实践(上)>,我们一共实践了vuex的这些内容: 1.在state中定义共享属性,在组件中可使用[$store.state.属性名]访问共享属性 2.在m ...

  3. MySQL数据库(五)插入操作

    前提要述:参考书籍<MySQL必知必会> <MySQL必知必会>是先讲了查询,但是没有记录就无法查询,所以先将如何添加数据. 表已经知道怎么创建了,随便创两张. 5.1 插入数 ...

  4. Java类成员之方法

    方法含义: 1. 方法是类或对象行为特征的抽象,用来完成某个功能操作. 2.在某些语言中也称为函数或过程. 3.将功能封装为方法的目的是简化代码,可以实现代码重用. 4.在Java里的方法不能独立存在 ...

  5. redis最新版本安装及开机自启

    的系统是ubuntu,安装方式有多种,一种是通过apt仓库,一种是下载源码,编译安装 1.通过apt仓库 具体命令: sudo apt-get update sudo apt-get install ...

  6. [工具] 利用setuptools打包python程序

    一.准备工程文件 1.创建工程leeoo 2.在工程根目录下创建setup.py文件 3.在工程根目录下创建同名package 二.编辑setup.py 1.编辑setup.py文件 from set ...

  7. mysql安装忘记初始密码怎么办

    title: MySQL安装过程忘记初始密码最简单最简单解决办法 MySQL安装过程忘记初始密码最简单解决办法 ​ 在安装MySQL的时候会给定一个初始的密码,而这个初始的密码特别恶心人一堆大小写特殊 ...

  8. dp - 求符合题意的序列的个数

    The sequence of integers a1,a2,…,ak is called a good array if a1=k−1 and a1>0. For example, the s ...

  9. python爬虫——requests库使用代理

    在看这篇文章之前,需要大家掌握的知识技能: python基础 html基础 http状态码 让我们看看这篇文章中有哪些知识点: get方法 post方法 header参数,模拟用户 data参数,提交 ...

  10. 系统升级更新,cocoaPods不可用的问题

    1.在终端运行: $ sudo gem install cocoa pods 会出现以下错误: ERROR:  While executing gem ... (Errno::EPERM) Opera ...