一、元组:  tuple

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

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

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) #将列表转变为元组

二、列表:  list

遍历列表:

#遍历列表
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])

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

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()) # 移除最后一个

随机列表

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) #返回重新洗牌列表,随机

三、字典:  dict

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)

字典的多级嵌套:

citys={
'北京':{
'朝阳':['国贸','CBD','天阶'],
'海淀':['圆明园','苏州街','中关村','北京大学'],
'昌平':['沙河','南口','小汤山',],
'怀柔':['桃花','梅花','大山']
},
'河北':{
'石家庄':['石家庄A','石家庄B','石家庄C'],
'张家口':['张家口A','张家口B','张家口C']
}
}
for i in citys['北京']:
print(i) for i in citys['北京']['海淀']:
print(i)

四、集合:        set

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

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

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

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

student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
print(student) # 输出集合,重复的元素被自动去掉 {'Mary', 'Jim', 'Rose', 'Jack', 'Tom'} # 成员测试
if('Rose' in student) :
print('Rose 在集合中')
else :
print('Rose 不在集合中')
#Rose 在集合中

补充:相互转换

1、元组 => 列表

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

2、字符串 <=> 列表

str1 = '天地玄黄宇宙洪荒'
list1 = list(str1) # 字符串转为列表
str2 = "".join(list1) # 列表转为字符串
print(str2) str1 = '天地,玄黄,宇宙,洪荒'
list1 = str1.split(",") # 字符串转为列表
print(list1) str1 = '天地玄黄宇宙洪荒'
str2 = str1[::-1] # 字符串倒序
print(str2)

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

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

import sys  # 引入 sys 模块

list = [1, 2, 3, 4]
it = iter(list) # 创建迭代器对象 while True:
try:
print(next(it))
except StopIteration:
sys.exit()

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

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()

Map,Filter,Reduce

  • Map会将一个函数映射到一个输入列表的所有元素上。
  • filter过滤列表中的元素,并且返回一个由所有符合要求的元素所构成的列表
  • 当需要对一个列表进行一些计算并返回结果时,Reduce 是个非常有用的函数。

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

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

装饰器:

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)

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

...

python3基础: 元组tuple、 列表list、 字典dict、集合set。 迭代器、生成器的更多相关文章

  1. python-day3 元组(tuple),列表(list),字典(dict)

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

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

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

  3. Python 入门学习 -----变量及基础类型(元组,列表,字典,集合)

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

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

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

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

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

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

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

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

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

  8. python基础===如何在列表,字典,集合中根据条件筛选数据

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

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

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

  10. python基础之 列表、元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

随机推荐

  1. sublime集成MinGW,打造C/C++开发环境

    MinGW是是将GCC编译器和GNU Binutils移植到Win32平台下的产物,包括一系列头文件(Win32API).库和可执行文件.MinGW是从Cygwin(1.3.3版)基础上发展而来.GC ...

  2. 使用chattr禁止文件被删除

    chattr 是个啥? chattr 修改文件在Linux第二扩展文件系统(E2fs)上的特有属性 使用方法 +i or -i 设置/取消文件不能进行修改:即你不能删除它, 也不能给它重新命名,你不能 ...

  3. 数据库索引 B+树

    问题1.数据库为什么要设计索引?索引类似书本目录,用于提升数据库查找速度.问题2.哈希(hash)比树(tree)更快,索引结构为什么要设计成树型?加快查找速度的数据结构,常见的有两类:(1)哈希,例 ...

  4. JavaScript使用readAsDataURL读取图像文件

    JavaScript使用readAsDataURL读取图像文件 FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项特殊的技术,可以 ...

  5. sklearn-GDBT

    GDBT 可以解决分类和回归问题 回归问题 def __init__(self, loss='ls', learning_rate=0.1, n_estimators=100, subsample=1 ...

  6. Hive 教程(一)-安装与配置解析

    安装就安装 ,不扯其他的 hive 依赖 在 hive 安装前必须具备如下条件 1. 一个可连接的关系型数据库,如 Mysql,postgresql 等,用于存储元数据 2. hadoop,并启动 h ...

  7. Jquery 控制table中的checkbox 相关选中事件

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. hive各种报错

    搭建了 CDH6.1.0环境 新加入一台机器都hive但是报错 javax.jdo.JDODataStoreException: Required table missing : "`VER ...

  9. 64位Win7安装Oracle12C临时位置权限错误解决方案

    今天装备安装Oracle12C体验一下,结果遇到问题:请确保当前用户具有访问临时位置所需的权限,无法继续安装,上网查了一下,解决方案如下:  第一步:  控制面板>所有控制面板项>管理工具 ...

  10. windows10 mysql主从复制配置

    注意:mysql主从复制,主从版本要一致! 生手永远在学习的路上,为了学习mysql主从复制,实现读写分离,于是在本地安装多个mysql实例来进行验证. 也因此有了下面的笔记,一来自我总结一下经验,二 ...