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. javascript时间处理

    1.将一般格式时间转换为时间戳: var systime = "2018年04月28日 16:01:09"; systime = systime.replace('年', &quo ...

  2. Shell 脚本格式注意事项

    if 条件判断格式 if [ ! -f file.txt ];then cmd else cmd fi 注1:! 代表非.不存在文件就成功. 注2:再有参数 变量 需要 [] 阔起 1 运算书写写格式 ...

  3. 【题解】Luogu P2763 试题库问题

    原题传送门 这题很简单啊 从源点向k类题目分别连流量为所需数量的边 从每道题向汇点连一条流量为1的边(每题只能用1次) 从类型向对应的题目连一条流量为1的边 跑一遍最大流 如果最大流小于所需题目数量, ...

  4. Idea 全局替换指定字符

    最近使用idea开发,刚接触不久,然后碰到需要全局替换的时候,懵逼了.之前使用eclipse 直接Ctrl+F 就可以操作了. 现在使用idea 摁Ctrl+F竟然只能搜,不能替换....尴尬的一匹. ...

  5. vim自动补全头注释与说明

    做个笔记吧. .vimrc autocmd BufNewFile *.c,*.cpp,*.sh,*.py,*.java exec ":call SetTitle()" " ...

  6. 剑指offer(35)数组中的逆序对

    题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...

  7. Win32汇编学习(6):键盘输入消息

    这次,我们将要学习WINDOWS程序是如何处理键盘消息的. 理论: 因为大多数的PC只有一个键盘,所以所有运行中的WINDOWS程序必须共用它.WINDOWS 将负责把击键消息送到具有输入焦点的那个应 ...

  8. 浅谈Static

    A: 使用场景 static可以修饰成员变量和成员方法. 什么时候使用static修饰成员变量? 加static修饰成员的时候,这个成员会被类的所有对象所共享.一般我们把共性数据定义为静态的变量 什么 ...

  9. 全文检索:haystack+elasticsearch

    优点: 1.查询速度快 2.支持中文分词准备工作:安装es软件 1.拷贝到ubuntu 2.docker load -i 文件路径 3.配置 修改ip地址 4.docker run -dti --ne ...

  10. synchronized同步方法《二》

    1.synchronized方法和锁对象 (1).验证线程锁的是对象 代码如下: 1.1创建一个MyObject类: package edu.ymm.about_thread4; public cla ...