python元组转字典_python3基础: 元组tuple、 列表list、 字典dict、集合set。 迭代器、生成器...

一、元组:  tuple

Python 的元组与列表类似,不同之处在于元组的元素不能修改。

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

tup2 = (111, 22, 33, 444, 55, 6, 77 )

for x in (tup2): #遍历

print(x)

list2 = [111, 22, 33, 444, 55, 6, 77 ]

tup2 = tuple(list2) #将列表转变为元组

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

二、列表:  list

遍历列表:

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

#遍历列表

list1 = [1, 2, 3, 6, 5, 4]

for x in list1:

print(x, end=",") # 运行结果:1,2,3,6,5,4,

for i in range(len(list1)):

print("序号:", i, " 值:", list1[i])

for i, val in enumerate(list1):

print("序号:", i, " 值:", val)

for i in list1:

idx = list1.index(i) # 索引

if (idx < len(list1) - 1):

print(i, '---------', list1[idx + 1])

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

排序列表、判断元素是否在列表中:

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

list1 = [1,2,3,6,5,4]

#排序列表(正序)

list1.sort()for x in list1:

print(x, end=",") #运行结果:1,2,3,4,5,6,

print("")

#排序列表(倒序)

list1.reverse()for x in list1:

print(x, end=",") #运行结果:6,5,4,3,2,1,

print("")

#判断元素是否存在于列表中

if 5 in list1:print("5 在list1中")

#在末尾追加新的元素

list1.append(555)

list1.append(555)print(list1)

#统计某个元素在列表中出现的次数

print("出现",list1.count(555),"次")#移除元素,并返回值(默认是移除最后一个)

print(list1.pop(0)) # 移除第一个

print(list1.pop()) # 移除最后一个

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

随机列表

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

import random

#返回一个随机的项目

print(random.choice(range(100)))

print(random.choice([1, 2, 3, 5, 9]))

print(random.choice('Hello World'))

ls1 = [20, 16, 10, 5];

random.shuffle(ls1) #返回重新洗牌列表,随机

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

三、字典:  dict

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

dict = {'name': 'pp', 'age': 20, "gender": "man"}

dict["name"] = "sss"

for key in dict.keys(): # 遍历字典。字典的 keys() 方法以列表返回可遍历的(键) 元组数组。

print(key)

for val in dict.values(): # 遍历字典。字典的 values() 方法以列表返回可遍历的(值) 元组数组。

print(val)

for key, val in dict.items(): # 遍历字典。字典的 items() 方法以列表返回可遍历的(键, 值) 元组数组。

print(key, " : ", val)

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

字典的多级嵌套:

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

citys={

'北京':{

'朝阳':['国贸','CBD','天阶'],

'海淀':['圆明园','苏州街','中关村','北京大学'],

'昌平':['沙河','南口','小汤山',],

'怀柔':['桃花','梅花','大山']

},

'河北':{

'石家庄':['石家庄A','石家庄B','石家庄C'],

'张家口':['张家口A','张家口B','张家口C']

}

}

for i in citys['北京']:

print(i)

for i in citys['北京']['海淀']:

print(i)

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

四、集合: set

集合(set)是一个无序不重复元素的序列。 基本功能是进行成员关系测试和删除重复元素。

集合无序,元素不能重复。

去重:将列表转化为集合,集合再转化为列表,就可以去重。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}

print(student) # 输出集合,重复的元素被自动去掉 {'Mary', 'Jim', 'Rose', 'Jack', 'Tom'}

# 成员测试

if('Rose' in student) :

print('Rose 在集合中')

else :

print('Rose 不在集合中')

#Rose 在集合中

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

补充:相互转换

1、元组 => 列表

tuple1 = (123, 'haha', 'she', 'hehe')

list1 = list(tuple1) #将元组转换为列表。运行结果:[123, 'haha', 'she', 'hehe']

print(list1)

2、字符串 <=> 列表

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

str1 = '天地玄黄宇宙洪荒'

list1 = list(str1) # 字符串转为列表

str2 = "".join(list1) # 列表转为字符串

print(str2)

str1 = '天地,玄黄,宇宙,洪荒'

list1 = str1.split(",") # 字符串转为列表

print(list1)

str1 = '天地玄黄宇宙洪荒'

str2 = str1[::-1] # 字符串倒序

print(str2)

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

迭代器、生成器:    http://www.runoob.com/python3/python3-iterator-generator.html

迭代器有两个基本的方法:iter() 和 next()

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

import sys # 引入 sys 模块

list = [1, 2, 3, 4]

it = iter(list) # 创建迭代器对象

while True:

try:

print(next(it))

except StopIteration:

sys.exit()

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

使用了 yield 的函数被称为生成器(generator)。  跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

import sys

def fibonacci(n): # 生成器函数 - 斐波那契

a, b, counter = 0, 1, 0

while True:

if (counter > n):

return

yield a

a, b = b, a + b

counter += 1

f = fibonacci(10) # f 是一个迭代器,由生成器返回生成

while True:

try:

print(next(f), end=" ")

except StopIteration:

sys.exit()

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

Map,Filter,Reduce

Map会将一个函数映射到一个输入列表的所有元素上。

filter过滤列表中的元素,并且返回一个由所有符合要求的元素所构成的列表

当需要对一个列表进行一些计算并返回结果时,Reduce 是个非常有用的函数。

http://docs.pythontab.com/interpy/Map_Filter/Map/

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

ls1 = [1, 2, 3, 4, 5]

ls2 = list(map(lambda x: x ** 2, ls1)) #加了list转换,是为了python2/3的兼容性。 在python2中map直接返回列表,但在python3中返回迭代器

print(ls2) # [1, 4, 9, 16, 25]

ls1 = range(-5, 5)

ls2= filter(lambda x: x > 0, ls1)print(list(ls2)) # [1, 2, 3, 4]

from functools import reduce

product = reduce((lambda x, y: x * y), [1, 2, 3, 4]) # 计算一个整数列表的乘积

print(product) # 24

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

装饰器:

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

def a(arg):

pass

def b(arg):

pass

def c(arg):

pass

def decorator(func):

def wrapper(*arg, **kw)

print ('Start ---' , func)

return func(*arg, **kw)

return wrapper

a = decorator(a)

b = decorator(b)

c = decorator(c)

L3Byb3h5L2h0dHBzL2NvbW1vbi5jbmJsb2dzLmNvbS9pbWFnZXMvY29weWNvZGUuZ2lm.jpg

https://www.zhihu.com/question/26930016

...

python-day3 元组&lpar;tuple&rpar;&comma;列表&lpar;list&rpar;&comma;字典&lpar;dict&rpar;

1.元组 tuple 有序数据,元组数据不可更改,若元组中有列表,可更改元组中的列表值里的值 元组中以","分开,若只有一个值就不是元组 包含各种数据类型 索引取值:t(2,0.0 ...

Python基础-元组、列表、字典

元组tuple 元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组.例:(1,2,3)("a","b","c&q ...

Python 入门学习 -----变量及基础类型&lpar;元组,列表,字典,集合&rpar;

Python的变量和数据类型 1 .python的变量是不须要事先定义数据类型的.能够动态的改变 2. Python其中一切皆对象,变量也是一个对象,有自己的属性和方法 我们能够通过 来查看变量的类型 ...

06-Python元组,列表,字典,集合数据结构

一.简介 数据结构是我们用来处理一些数据的结构,用来存储一系列的相关数据. 在python中,有列表,元组,字典和集合四种内建的数据结构. 二.列表 用于存储任意数目.任意类型的数据集合.列表是内置可 ...

Python元组、列表、字典、集合

1. 元组 元组由不同元素组成,每个元素可以存储不同类型的数据,元组是有序的,元组创建后不能再做任何修改. 元组的创建: tuple = ('a','b','c','d') 如果创建的元组只有1个元素 ...

Python元组,列表,字典,集合

1.元组 元组是有序的,只有index和count两种方法,一看到元组,就提醒是不可更改的 names = ('wll', 'ly', 'jxx', 'syq') (1)index方法 print(n ...

python中元组、列表、字典、集合知识

像列表一样处理字符串: 仅需要看字符串的首字符就知道如何处理该字符串的情况也很常见.例如,如果有一个姓与名的列表,您可以使用与列表相同的语法查看名与姓的第一个字符.这种看待字符串的方法叫做分片(sli ...

python基础&equals;&equals;&equals;如何在列表,字典,集合中根据条件筛选数据

#常见的操作如下: data = [1, 5, -3, -2, 6, 0, 9] res = [] for x in data: if x>=0: res.append(x) print(res ...

python高级变量类型(元组,列表,字典&comma; 字符串和重要方法)

高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...

Python基础(4)列表、元组、字符串、字典、集合、文件操作

列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 详见:http://www.cnblogs.com/alex3714/articles/5717620.html 1.列表和元 ...

随机推荐

next&lpar;&lbrack;expr&rsqb;&rpar; 取得一个包含匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合。

描述: 找到每个段落的后面紧邻的同辈元素. HTML 代码:

Hello

Hello Again

< ...

WinForm中WebBrowser的使用

最近由于工作需要,研究了下Winform的WebBrowser控件,在这里给大家分享下. 1.WebBrowser导航 WebBrowser在进行导航的时候需要用到Navigate(string ur ...

gc之四--Minor GC、Major GC和Full GC之间的区别

针对HotSpot VM的实现,它里面的GC其实准确分类只有两大种: Partial GC:并不收集整个GC堆的模式 Young GC:只收集young gen的GC Old GC:只收集old ge ...

magento memcache缓存配置

在app/etc/local.xml 配置段中添加 cache段配置

Changing a Service&&num;39&semi;s Configuration

Changing a Service's Configuration   A service configuration program uses the ChangeServiceConfig an ...

创建您自己的Maven模板

相关链接: http://maven.apache.org/archetype/maven-archetype-plugin/ 一.事实上Maven的模板也是一个maven项目,所以我们首先要生成一个 ...

【微信小程序开发教程】如何显示群名称?

今年 5 月份的时候,微信宣布:「为了更好的针对群场景提供个性化服务,当用户在群聊中点击小程序分享卡片时,小程序支持开发者获取群 ID 和群名称」.但随后没多久,发现小程序只返回了群 ID,并没有给我 ...

android Titlebar一行代码实现沉浸式效果

github地址 一个简单易用的导航栏TitleBar,可以轻松实现IOS导航栏的各种效果  整个代码全部集中在TitleBar.java中,所有控件都动态生成,动态布局.不需要引用任何资源文件,拷贝 ...

安装Spotlight On Unix监控Linux

1.安装Spotlight 一步一步按提示安装即可- 2.安装sysstat 在Linux上,必须安装sysstat包,用户才可以获取详细的磁盘I/O信息. 执行 rpm -qa |grep syss ...

IDEA环境下GIT操作浅析之二-idea下分支操作相关命令

上次写到,今天我们继续写IDEA环境下GIT操作之二--idea下分支操作相关命令以及分支创建与合并. 1.idea 下分支操作相关命令 ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值