template = "i am {name},age:{age}"
v = template.format(**{"name":'xiaoxing',"age":19})
print(v)
tu = (111,"xiaoxing",(11,22),[(33,44)],45,)
#1.书写格式
#一般写元组的时候推荐在最后加入逗号,
#元组中的一级元素不可被修改,不能增加或者删除
print(tu)

#2.索引取值
v1 = tu[0]

#3.切片取值
v2 = tu[0:3]
print(v1)
print(v2)

三个运行结果:

(111, 'xiaoxing', (11, 22), [(33, 44)], 45)
111
(111, 'xiaoxing', (11, 22))

#4.可被for 循环,可迭代对象
for item in tu:
print(item)
运行结果:

111
xiaoxing
(11, 22)
[(33, 44)]
45

#5.字符串,列表,元组相互之间转换
s = "xiaoxingasdf"
li = ["asdf","qwer"]
tu = ("xiao","xing")
#(1).字符串转元组
v1 = tuple(s)
print(v1)
运行结果:
('x', 'i', 'a', 'o', 'x', 'i', 'n', 'g', 'a', 's', 'd', 'f')

#(2).列表转元组
v2 = tuple(li)
print(v2)
运行结果:
('asdf', 'qwer')

#(3).元组转列表
v3 = list(tu)
print(v3)
运行结果:
['xiao', 'xing']


tu = (111,"xiaoxing",(11,22),[(33,44)],45,)
#元组,有序,元组一级元素不可被修改
v = tu[3][0][0]
print(v)
运行结果33

tu[3][0] = 567
#这里能够被修改的原因是tu[3][0],取到的值是[(33,44)]一个列表,因此列表可被修改
print(tu)
运行结果中[(33,44)]被替换成了[567]
(111, 'xiaoxing', (11, 22), [567], 45)

tu[3][0][0] = 567
#这里如果这样书写会报错,原因是tu[3][0][0]取到的是(33,44)元组中的元素,因元组不可被修改,因此会报错
tu = (11,"xiaoxing",(11,22),[(22,44)],11,)
#统计在元组中出现的次数
v1 = tu.count(11)
print(v1)
运行结果:
2

v2 = tu.index(11)
#查看索引值
print(v2)
运行结果:
0

##############################字典###########################
#1.基本结构
#info = {
      "k1":"v1",#键值对
      "k2":"v2"
}
#2.列表,字典不能作为字典的key,字典中的vaule可以是任意值
#布尔值是可以作为key值的,但是key值如果存在重复,只保留一个
info = {
1:'asdf',
"k1":"asdf",
True:"123",
(11,22):123,

}
print(info)
运行结果:
{1: '123', 'k1': 'asdf', (11, 22): 123}

#4.字典是无序的,可以通过多次运行字典,看到输出的顺序不一致

#5.字典的索引取值
info = {
"K1":18,
"K2":True,
"K3":[
11,
[],
(),
22,
33,
{
'KK1':'VV1',
'KK2':'VV2',
'KK3':(11,22),
}
],
'K4':(11,22,33,44)
}
v = info["K1"]
print(v)
运行结果:
18

v1 = info["K3"][5]['KK3'][0]
#在这里取的是11
print(v1)
运行结果:
11

#6.删除字典中的元素
info = {
"K1":18,
"K2":True,
"K3":[
11,
[],
(),
22,
33,
{
'KK1':'VV1',
'KK2':'VV2',
'KK3':(11,22),
}
],
'K4':(11,22,33,44)
}
del info["K1"]
print(info)
运行结果:
{'K2': True, 'K3': [11, [], (), 22, 33, {'KK1': 'VV1', 'KK2': 'VV2', 'KK3': (11, 22)}], 'K4': (11, 22, 33, 44)}

#删除KK1
del info["K3"][5]["KK1"]
print(info)
运行结果:
{'K1': 18, 'K2': True, 'K3': [11, [], (), 22, 33, {'KK2': 'VV2', 'KK3': (11, 22)}], 'K4': (11, 22, 33, 44)}
#获取key
for item in info.keys():
print(item)
运行结果:

K1
K2
K3
K4

#7.获取vaule

for item1 in info.values():
print(item1)
运行结果:

18
True
[11, [], (), 22, 33, {'KK1': 'VV1', 'KK2': 'VV2', 'KK3': (11, 22)}]
(11, 22, 33, 44)

#8.同时获取key和vaule

for item in info.keys():
print(item,info[item])
运行结果:

K1 18
K2 True
K3 [11, [], (), 22, 33, {'KK1': 'VV1', 'KK2': 'VV2', 'KK3': (11, 22)}]
K4 (11, 22, 33, 44)

#还有种方法

for k,v  in info.items():
print(k,v)
运行结果和上面一致

#布尔值是可以作为key值的,但是key值如果存在重复,只保留一个
info = {
"K1":18,
"K1":True,
"K3":[
11,
[],
(),
22,
33,
{
'KK1':'VV1',
'KK2':'VV2',
'KK3':(11,22),
}
],
'K4':(11,22,33,44)
}
运行结果:
{'K1': True, 'K3': [11, [], (), 22, 33, {'KK1': 'VV1', 'KK2': 'VV2', 'KK3': (11, 22)}], 'K4': (11, 22, 33, 44)}

v = dict.fromkeys(["k1",123,"999"],123)
#1.根据序列,创建字典,并指定统一的值
print(v)
运行结果:
{'k1': 123, 123: 123, '999': 123}

#2.根据key值获取vaule,若不存在时可以指定默认值,不指定时返回none
dic = {
'k1':'v1',
}
v = dic.get('k1',111)
print(v)
运行结果:
v1
dic = {
'k1':'v1',
'k2':'v2'
}
v = dic.pop('k1')
#3.删除并获取值

v1 = dic.popitem()
#随机删除
print(v1)

print(dic,v)
运行结果:

{'k2': 'v2'} v1

('k2', 'v2')

#4.设置值,若已存在,不设置,获取当前key对应的值
#不存在,设置,并获取当前key对应的值
v1 = dic.setdefault('k1','1234')
v2 = dic.setdefault('kk1',"1234")
print(v1,dic)
print(v2,dic)
运行结果:

v1 {'k1': 'v1', 'k2': 'v2', 'kk1': '1234'}
1234 {'k1': 'v1', 'k2': 'v2', 'kk1': '1234'}

#5.update调用的两种方式
dic.update({"k1":'520','k3':'521'})
print(dic)
运行结果:
{'k1': '520', 'k2': 'v2', 'k3': '521'}

dic.update(k1=123,k3=234,k4=456)
print(dic)
运行结果:

{'k1': 123, 'k2': 'v2', 'k3': 234, 'k4': 456}

字典中特别重要的有6. keys()  7.vaules()  8.items()  get   update

看到了day12 第10

############################整理###############################

一.数字

#int (...)

二.字符串

#replace/find/join/strip/startwith/split/upper/lower/format

template = "i am {name},age:{age}"
v = template.format(**{"name":'xiaoxing',"age":19})
print(v)
运行结果:
i am xiaoxing,age:19

三.列表

#append、extend、insert
#索引、切片、循环

四、元组
#忽略
#索引、切片、循环 以及元素不能被修改

五.字典
#get/update/keys/vaules/items
#for,索引
dic = {
'k1':'v1',
'k2':'v2'
}
v = "k1" in dic
print(v)

v2 = "v1" in dic.values()
print(v2)

六.布尔值
#0 1
#bool(......)
#None,"",(),[],{},0==>False
如:
bool(None)
运行结果为False




												

Python学习【第4篇】:元组魔法的更多相关文章

  1. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

  2. Python学习2-列表和元组

    Python学习2-列表和元组 标签(空格分隔): 列表 元组 在Python中,最基本的数据结构是序列(sequence).序列中的每个元素被分配一个序号--即元素的位置,也称为索引.索引从0开始. ...

  3. Python 学习 第十篇 CMDB用户权限管理

    Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...

  4. Python学习笔记进阶篇——总览

    Python学习笔记——进阶篇[第八周]———进程.线程.协程篇(Socket编程进阶&多线程.多进程) Python学习笔记——进阶篇[第八周]———进程.线程.协程篇(异常处理) Pyth ...

  5. Python学习笔记——基础篇【第七周】———类的静态方法 类方法及属性

    新式类和经典类的区别 python2.7 新式类——广度优先 经典类——深度优先 python3.0 新式类——广度优先 经典类——广度优先 广度优先才是正常的思维,所以python 3.0中已经修复 ...

  6. Python 学习笔记---基础篇

    1. 简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200 import subprocess cmd="cmd.exe" b ...

  7. Python学习系列提升篇------字符串

    字符串是python学习中重要的内容,在以后的工作中,对字符串的处理也必少不了.下面总结一下关于字符串学习的经验. 1.1 字符串的连接和合并 用‘ + ’连接,将两个字符串相加.       合并, ...

  8. Python学习笔记——基础篇2【第三周】——计数器、有序字典、元组、单(双)向队列、深浅拷贝、函数、装饰器

    目录 1.Python计数器Counter 2.Python有序字典OrderredDict 3.Python默认字典default 4.python可命名元组namedtuple 5.Python双 ...

  9. Python 学习 第14篇:数据类型(元组和集合)

    元组和集合是Python中的基本类型 一,元组 元组(tuple)由小括号.逗号和数据对象构成的集合,各个项通过逗号隔开,元组的特点是: 元组项可以是任何数据类型,也可以嵌套 元组是一个位置有序的对象 ...

  10. Python 学习 第三篇:数组类型(列表、字典和元组)

    列表和字段都可以在原处进行修改,可以按照需求增长或缩短,并且可以包含任何类型的对象或被嵌套.列表和字典存储的是对象的引用,而不是拷贝. 一,列表 列表是有序的序列,每一个列表项的顺序是固定的,这使得列 ...

随机推荐

  1. 如果不空null并且不是空字符串才去修改这个值,但这样写只能针对字符串(String)类型,如果是Integer类型的话就会有问题了。 int i = 0; i!=''。 mybatis中会返回tr

    mybatis 参数为Integer型数据并赋值0时,有这样一个问题: mybatis.xml中有if判断条件判断参数不为空时,赋值为0的Integer参数被mybatis判断为空,因此不执行< ...

  2. TurtleBot3 Waffle (tx2版华夫)(4)笔记本与TX2的通信

    4.1. 使用vnc控制华夫Turbot3-Tx2开发板 1) 电脑端安装vnc viewer,您可以选择应用商城下载安装即可: 2) 下载后打开,键入Turbot3的ip à回车à选择连接: 3)  ...

  3. Spring boot JPA读取数据库方法

    方法1: 1 StringBuffer sb = new StringBuffer(300); 2 sb.append("SELECT v.id, v.container_number, v ...

  4. IDEA配置JRebel实现热部署

    IDEA配置JRebel实现热部署 1.下载JRebel and XRebel for Intellij插件 2. 激活 请查看这个文章http://www.cicoding.cn/other/jre ...

  5. 利用python 5分钟制作一款小游戏

    1.安装pygame 在命令行cmd中输入:pip install pygame ( 注:如果安装不成功,需要输入:python -m pip install --user --upgrade pip ...

  6. Python 中的面向接口编程

    前言 "面向接口编程"写 Java 的朋友耳朵已经可以听出干茧了吧,当然这个思想在 Java 中非常重要,甚至几乎所有的编程语言都需要,毕竟程序具有良好的扩展性.维护性谁都不能拒绝 ...

  7. C语言指针-从底层原理到花式技巧,用图文和代码帮你讲解透彻

    这是道哥的第014篇原创 目录 一.前言 二.变量与指针的本质 1. 内存地址 2. 32位与64位系统 3. 变量 4. 指针变量 5. 操作指针变量 5.1 指针变量自身的值 5.2 获取指针变量 ...

  8. InheritableThreadlocal使用问题排查

    背景 在做一个微服务系统的时候,我们的参数一般都是接在通过方法定义来进行传递的,类似这样 public void xxx(Param p, ...){ // do something } 然后这时有个 ...

  9. 【Linux】云服务器部署宝塔linux控制面板环境

    服务器购买及宝塔部署环境说明 简单记录 - 狂神的 服务器购买及宝塔部署环境说明 服务器如何购买 我们尽量趁打折的时候购买,比较便宜点!多看看有活动. 如果是学生,可以购买学生机, 学生机地址:htt ...

  10. dd命令的详细介绍

    1.命令简介  dd 的主要选项: 指定数字的地方若以下列字符结尾乘以相应的数字: b=512, c=1, k=1024, w=2, xm=number m if=file #输入文件名,缺省为标准输 ...