Python-可变类型与不可变类型
可变类型
可以变化的,列表和字典
利用id()函数 查看内存地址
内存地址变化即不可变类型。
内存地址不变化即可变类型
不可变类型
不可以变化的,字符串和数字
字符串内置方法
- 索引取值
- 索引切片
- 成员运算
- for循环
- len长度
- strip 去掉空格
- lstrip/rstrip
- startswith/endswith
- split
- join
- count
- find/index
- center/ljust/rjust
列表的内置方法
- 索引取值/修改值
- 索引切片
- 成员运算
- for循环
- len长度
- append 添加元素
- sort 排序
- reverser 反转元素
- copy
- extend
- clear
- remove
- insert
字典的内置方法
- 按key取值/修改值/增加值
- keys
- values
- items
- get
- setdefault
- update
常用数据类型内置方法
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | |
---|---|---|---|---|---|---|---|---|---|---|---|
字符串 | 索引取值 | 成员运算 | 循环 | len | count | strip lstrip rstrip | split | join | find index | startswith endswith | center ljust rjust |
列表 | 索引取 修改值 | 成员运算 | 循环 | len | sort | extend | copy | append insert | reverse | crear remove | |
字典 | key取值修改增值 | 成员运算 | 循环 | keys | values | items | get | setdefault | update |
列表 | 字典 | |
---|---|---|
增 | append/insert/extend/copy | 按key赋值(num["qq"]=123) copy |
删 | pop/remove/clear/del | 按key删除(del num["qq"]/num.pop("qq")) clear |
改 | 索引修改 | 按key修改(num["name"]="老王") update |
查 | 索引取值/count/len/index/sort | get/keys/values/items/setdefault |
1. 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中
即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
lt = [11,22,33,44,55,66,77,88,99,90]
l1 = []
l2 = []
dic = {}
for i in lt:
if i > 66:
l1.append(i)
else:
l2.append(i)
dic["k1"] = l1
dic["k2"] = l2
print(dic)
2. 统计s='hello alex alex say hello sb sb'中每个单词的个数
结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}
s = 'hello alex alex say hello sb sb'
dic = {}
for i in s.split():
dic[i] = s.count(i)
print(dic)
3. 写代码,有如下变量,请按照要求实现每个功能
name = " aleX"
# 1) 移除 name 变量对应的值两边的空格,并输出处理结果
# 2) 判断 name 变量对应的值是否以 "al" 开头,并输出结果
# 3) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
# 4) 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
# 5) 将 name 变量对应的值根据 “l” 分割,并输出结果。
# 6) 请输出 name 变量对应的值的第 2 个字符?
# 7) 请输出 name 变量对应的值的前 3 个字符?
# 8) 请输出 name 变量对应的值的后 2 个字符?
# 9) 请输出 name 变量对应的值中 “e” 所在索引位置?
# 10) 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。
name = " aleX"
print(name.strip())
print(name.startswith("al"))
print(name.endswith("X"))
print(name.replace("l","p"))
print(name.split("l"))
print(name[1])
print(name[0:4])
print(name[-2:])
print(name.index("e"))
print(name.rstrip("X"))
4. 假设有一个文件test.txt,内有如下内容
l=[
{'name':'alex','age':84},
{'name':'oldboy','age':73},
{'name':'egon','age':18},
]
需求:
1. 读取文件内容
2. 计算这三个人的年龄总和
num = 0
with open("test.txt","r") as f:
data = f.readlines()
for i in data:
if i == "l=[\n" or i == "]":
continue
else:
list_txt = i.lstrip("\n").rstrip("\n,")
dic = eval(list_txt)
num += dic["age"]
print(num)
Python-可变类型与不可变类型的更多相关文章
- 理解python可变类型vs不可变类型,深拷贝vs浅拷贝
核心提示: 可变类型 Vs 不可变类型 可变类型(mutable):列表,字典 不可变类型(unmutable):数字,字符串,元组 这里的可变不可变,是指内存中的那块内容(value)是否可以被改变 ...
- Python的可变类型与不可变类型
Python基础知识,自己写一写比较不容易忘 Python的每个对象都分为可变和不可变,主要的核心类型中,数字.字符串.元组是不可变的,列表.字典是可变的. 对不可变类型的变量重新赋值,实际上是重新创 ...
- python可变类型和不可变类型
原文地址:http://www.cnblogs.com/huamingao/p/5809936.html 可变类型 Vs 不可变类型 可变类型(mutable):列表,字典 不可变类型(unmutab ...
- Python——可变类型与不可变类型(即为什么函数默认参数要用元组而非列表)
Python 的内建标准类型有一种分类标准是分为可变类型与不可变类型: 可变类型:列表.字典 不可变类型:数字.字符串.元组 因为变量保存的实际都是对象的引用,所以在给一个不可变类型(比如 int)的 ...
- 26、Python的可变类型和不可变类型?
Python的每个对象都分为可变和不可变 可变:列表.字典 不可变:数字.字符串.元祖 对不可变类型的变量重新赋值,实际上是重新创建一个不可变类型的对象,并将原来的变量重新指向新创建的对象(如果没有其 ...
- python的可变数据类型和不可变类型
python里面一切皆对象 ython的每个对象都分为可变类型和不可变类型 整形,浮点型,字符串,元组属于不可变类型,列表,字典是可变类型 不可变数据类型 对不可变类型的变量重新赋值,实际上是重新创建 ...
- Python探索记(16)——Python的可变类型与不可变类型
# @Time : 2017/7/8 17:49 # @Author : 原创作者:谷哥的小弟 # @Site : 博客地址:http://blog.csdn.net/lfdfhl # @DESC : ...
- python的可变类型和不可变类型
Python有六种数据类型:数字类型.字符串类型.列表类型.元组类型.字典类型和集合类型 其中不可变类型包括三种:数字类型.字符串类型和元组类型 剩余三种为可变类型:列表类型.字典类型和集合类型 可变 ...
- python可变类型和不可变类型,深拷贝vs浅拷贝
转载:https://www.cnblogs.com/huamingao/p/5809936.html 核心提示: 可变类型 Vs 不可变类型 可变类型(mutable):列表,字典 不可变类型(un ...
- python中可变类型和不可变类型
1.python中的可变类型和不可变类型 python中的数据类型大致可分为6类:1.Number(数字) 2. String(字符串) 3. Tuple (元组) 4. List(列表) 5. Di ...
随机推荐
- ZuulFilter
在服务网关中定义过滤器,只需要继承ZuulFilter抽象类,实现其定义的四个抽象函数,就可对请求进行拦截与过滤 过滤器两个功能: 路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入 ...
- MYSQL - database 以及 table 的增删改查
MYSQL - database 以及 table 的增删改查 MySQL的相关概念介绍 MySQL 为关系型数据库(Relational Database Management System), 这 ...
- thinkphp 正则路由
正则路由也就是采用正则表达式定义路由的一种方式,依靠强大的正则表达式,能够定义更灵活的路由规则. 路由表达式支持的正则定义必须以“/”开头,否则就视为规则表达式.也就是说如果采用: '#^blog\/ ...
- 1002CSP-S模拟测试赛后总结
晚上 我死了.T1全场AC只有我爆零了?? 还非常中二地写了个代码注释: 水题不假,但你不知道题水你更水么?? 碰到简单题就掉以轻心??还告诉自己不要掉以轻心…… 这下是真的滑天下之大稽了吧. 读题不 ...
- STL容器set用法以及codeforces 685B
以前没怎么用过set,然后挂训练赛的时候发现set的妙用,结合网上用法一边学一边写. 首先set是一种容器,可以跟其他STL容器一样用 set<int > s 来定义, 它包含在STL头文 ...
- IDEA 创建普通的maven+java Project
最近想把以前积累的零散java练习和学习的东西建一个项目整理出来上传到码云托管,免得电脑挂了啥也找不到 配置是IDEA2017+java8+maven3.2.5,截图记录下步骤 第一步:File--& ...
- js 调用接口并传参
注:需先引入 jquery.json-xx.min.js 1. 参数跟在url后面 var name = '王一'; var age = 18; $.ajax({ type : 'get', url ...
- c# 中反射里的invoke方法的参数
一个最简单的C#反射实例,首先编写类库如下: namespace ReflectionTest { public class WriteTest { //带参数的公共方法 public void Wr ...
- vue初学之node.js安装、cnpm安装、vue初体验
1. 如果本机没有安装node运行环境,请下载node 安装包进行安装.地址:https://nodejs.org/en/ 2.装完,使用cmd命令行输入:node -v回车 如果输出版本号则成功. ...
- 【daydayup】weTalk
先看一下项目效果 这个是我运行的作者的项目的wetalk-server项目,他还有wetalk-client 项目 先放下作者的github项目地址:https://github.com/mangyu ...