tuple 元组     dict 字典

更详细参考:https://www.cnblogs.com/jin-xin/articles/7562422.html

#!/usr/bin/env python
# coding:utf-8 # Tuple 元组: 只读列表 数据可以被查询,但不能被修改 # 列表是有序的,元素可以任意修改、插入、删除,但元组不可以。
tmp1 = []    # 创建空列表 list
tmp2 = () # 创建空元组 tuple
tmp3= {} # 创建空字典 dict
tmp4= set() # 创建空集合 set print(type(tmp1))
print(type(tmp2))
print(type(tmp3))
print(type(tmp4))
# Tuple的创建取决于逗号,所以一般在元组最后加上逗号, 尤其是只有一个元素时,末尾一定要加逗号 
# 元素不可被修改,不能增加、删除
temp1 = 1,
print(type(temp1)) temp2 = (1, 2, 3, 4, 5, 6,)
print(temp2[1])
print(8 * (8))
print(8 * (8,)) # 也是可迭代对象
for i in temp2:
  print(i) # 可转换、切片、索引、
# 元组的一级元素不可修改
tu = (111,"alex",(11,22),[(33,44)],True,66,77,) tu[3][0] = "bbcc"
# 这样是修改了一级元素列表里的元素。
print(tu) ############## 方法
# count 获取指定元素在元组中出现的次数

字典 dict

#!/usr/bin/env python
# coding:utf-8 info = {
"k1": "v1",
"k2": "v2",
12: "asdf",
True:1000,
(11, 22,): 1234,
2: ["abc", "defg"],
"k3":["哈哈",(),33,44,{
'kk1':'vv1',
'kk2':'vv2',
'kk3':(11,22),
}],
"k4":True
}
# 键值对,value可以是任何值 保存的时候按hash表保存
# 列表、字典不能作为字典的Key
# 注意: key 不能重复,重复只会保留一个。
print(info) # 字典是无序的
v = info['k3'][4]['kk3'][0]
print(v) # 删除 修改
del info['k1']
del info['k3'][4]['kk3'] # 默认循环key
for item in info:
print(item) print('***********************')
# 循环values
for item in info.values():
print(item) print("======================") # 循环key value
for k,v in info.items():
print(k,v)
#!/usr/bin/env python
# coding:utf-8 dic = {"k1":'v1','k3':'v3','k4':'v4','k5':'v5'} # 根据序列,创建字典,并指定统一的值
v = dict.fromkeys(['k1',123,''],888)
print(v) # 如果取不存在的key,就会程序出错。而使用get方法取不存在的key,则会返回None
# u = dic['k2']
# print(u) # u = dic.get('k2','不存在')
# print(u) # 也可以在没找到key时,传个默认值
u = dic.get('k2','不存在')
print(u) # pop 可以指定key来删除,popitem 则是随机删除一个
# w = dic.pop('k3')
# print(w)
# 也可以指定找不到时的返回值
w = dic.pop('k33','no found')
print(w) # 设置值,存在则不设置,并获取存在的值 ;不存在就添加,并获取添加的值
v = dic.setdefault('k1','boy')
print(dic, v) v = dic.setdefault('k11','boy')
print(dic, v) ## 更新
dic.update({'k1':'','k4':1234})
print(dic) dic.update(k1=44456,k3="啤酒花",k4=True) # **kwargs
print(dic) # 最常用的几个 keys() values() items() get update

以下是这几种类型的整理:

#!/usr/bin/env python
# coding:utf-8 ## 一、数字
# int(...) ## 二、字符串
# replace /find /join /strip startswith /split /upper /lower /format
temp = 'I am {name}, age:{age}'
# v = temp.format(name="Tom",age=38) v = temp.format(**{"name":'alex','age':22}) # **kwargs 就表示可以传字典
print(v) ## 三、列表
# append/ extend / insert
# 索引、切片、循环 ## 四、元组
# 索引、切片、循环
# 一级元素不能被修改 ## 五、字典
# get /update /keys /values /items
# for 索引 dic = {'k1':'v1'}
v = 'k1' in dic
print(v) w = 'v1' in dic.values()
print(w) ## 六、布尔值
# bool(...)
# 记得这些是False就行: None "" () [] {} 0

字典应用的小例子,用来代替 switch  case

# -----字典映射复杂的switch case----
# switch中,case下面可以写代码块,其实Python的字典也可以. print('请输入您想翻译星期几:')
userinput = input("输入星期几(如星期一):") #输入 '星期一'
#userinput = raw_input("输入星期几(如星期一):") # Python2.x def translateMonday():
return 'Monday' def translateTuesday():
return 'Tuesday' def translateWednesday():
return 'Wednesday' def translateThursday():
return 'Thursday' def translateFriday():
return 'Friday' def translateSaturday():
return 'Saturday' def translateSunday():
return 'Sunday' def unknow2():
return '请输入正确的信息' # 从这里可以得出,字典的value也可以是函数.
# value的值,直接写函数名
# 这里的key是字符串,value是函数
chineseName = {
'星期一': translateMonday,
'星期二': translateTuesday,
'星期三': translateWednesday,
'星期四': translateThursday,
'星期五': translateFriday,
'星期六': translateSaturday,
'星期日': translateSunday
} # 注意这里的第二个参数也必须是一个函数,否则会报错的.
# get()方法后面还有一个(), 是为了执行对应的函数
englishName = chineseName.get(userinput,unknow2)() print(englishName) # 输入信息: 星期一
# 输出结果: Monday
# 扩展了字典中 key和value的知识点,value可以是函数,那么就可以用这样的方法来实现比较复杂的业务逻辑了.
# 完美代替了switch case

另一个列表与字典的例子:统计词频

list1 = ['apple', 'orange', 'pear', 'apple', 'pear', 'apple', 'apple', 'banana']
# 将上方的列表元素,统计词频 # 创建空字典
items = {} for i in list1:
if i in items:
items[i] = items[i] + 1
else:
items[i] = 1 print(items)

更多参考: https://www.cnblogs.com/jin-xin/articles/7562422.html

python基础07_tuple_dict的更多相关文章

  1. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  2. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  3. Python小白的发展之路之Python基础(一)

    Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...

  4. Python之路3【第一篇】Python基础

    本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...

  5. 进击的Python【第三章】:Python基础(三)

    Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...

  6. 进击的Python【第二章】:Python基础(二)

    Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...

  7. Python之路【第一篇】python基础

    一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...

  8. python基础之day1

    Python 简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python为我们提供了非常完善的基础代码库,覆盖了 ...

  9. python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

随机推荐

  1. Why Choose MB SD C5 with Engineer Software

    MB SD C5 with engineer software performed good and now is released. Unlike the old clone C5 which us ...

  2. 定位bug的基本要求

    很多人觉得qa只是负责发现问题,这个实在太狭隘了,现代qa除了发现问题这种基本功外,定位问题,提出解决方案,提出预防方案也是要掌握的技能.这里先说定位问题的要求,定位问题要向深入,前提当然是对功能.产 ...

  3. nginx配置优化 第二章

    一:常用功能优化: 1:网络连接的优化: 只能在events模块设置,用于防止在同一一个时刻只有一个请求的情况下,出现多个睡眠进程会被唤醒但只能有一个进程可获得请求的尴尬,如果不优化,在多进程的ngi ...

  4. php5.6 安装intl扩展

    PHP intl 是国际化扩展,是ICU 库的一个包装器.所以在安装PHP intl扩展前要先安装ICU库,安装ICU库的具体步骤见:http://www.linuxeye.com/Linux/237 ...

  5. 基础的基于QT的图像查看程序

    代码来自<QT5.9c++开发指南>,因为实现了图片的遍历显示,对于将来编写ImageShop一类的图像程序来说将非常有用(这个程序目前存在一定问题,在研究过程中进行解决) 一.基本功能 ...

  6. flask --- 02. 路由, 初始化配置,蓝图

    一.Flask 路由 1.添加路由的方式 ① ② 实例: ① @app.route("/my_de") def detail() ② def detail() app.add_ur ...

  7. 复旦高等代数 I(17级)每周一题

    本学期将继续进行高等代数每周一题的活动.计划从第二教学周开始,到第十六教学周为止(根据法定节假日安排,中间个别周会适当地停止),每周的周末将公布1-2道思考题,供大家思考和解答.每周一题通过“谢启鸿高 ...

  8. loj2353. 「NOI2007」 货币兑换

    loj2353. 「NOI2007」 货币兑换 链接 https://loj.ac/problem/2353 思路 题目不重要,重要的是最后一句话 提示 输入文件可能很大,请采用快速的读入方式. 必然 ...

  9. Jmeter 分布式(Jmeter5.1版本)

    一.修改负载机配置 vi /home/programs/apps/apache-jmeter-5.1/bin/jmeter.properties A.(先保证1099端口没有被占用,这里假设此端口未被 ...

  10. html5中的几种布局简单比较

    html中的布局主要由静态布局.自适应布局.流式布局以及响应式布局几类,简单比较以下这几种布局的区别和特点. 一 静态布局(Static Layout) 表现:在传统web设计中,不管浏览器尺寸具体大 ...