一、元组:  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. 一步一步带你入门MySQL中的索引和锁 (转)

    出处: 一步一步带你入门MySQL中的索引和锁 索引 索引常见的几种类型 索引常见的类型有哈希索引,有序数组索引,二叉树索引,跳表等等.本文主要探讨 MySQL 的默认存储引擎 InnoDB 的索引结 ...

  2. Docker 添加容器SSH服务

    很多时候我们需要登陆到容器内部操作,此时我们就需要开启容器的SSH支持了,下面的小例子将具体介绍三种分配IP地址的方法,分别是pipworl分配,commit分配,Docker分配等. 基于commi ...

  3. MVCC实现机制

    1. MVCC简介 1.1 什么是MVCC MVCC(Multiversion concurrency control )是一种多版本并发控制机制. 1.2 MVCC是为了解决什么问题? 并发访问(读 ...

  4. redis 学习(3)-- String 类型

    redis 学习(3)-- String 类型 String-结构 结构:Key-Value对 Value:可以是字符串.数字,也可以是二进制数组 限制:Value最大值为512MB String-常 ...

  5. java程序中访问https时,报 PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

    在java中使用https访问数据时报异常: Caused by: sun.security.validator.ValidatorException: PKIX path building fail ...

  6. C++ 数组操作符重载、函数对象分析、赋值操作符

    string类型访问单个字符 #include <iostream> #include <string> #include <sstream> using name ...

  7. python 短信邮件

    短信邮件 hashlib​- md5:非对称加密,不可逆的,经常用于加密密码然后存储​- 示例:​ ```python import hashlib ​ # 创建hash对象,可以指定需要加密的字符串 ...

  8. 第六篇 CSS样式 背景、背景图、文本、链接

    元素背景.文本(字体)样式.链接 这里我们只学习常用的一些,更多的扩展就要同学们自己去了解,或者下方评论. 这里我们为了简便,用的是CSS的内嵌形式.   元素背景: 我们写模块的时候,有的时候为了区 ...

  9. html2canvas+Canvas2Image分享海报功能踩坑

    首先需要 import html2canvas from 'html2canvas'; import {Canvas2Image} from '../../assets/js/plug/canvas2 ...

  10. textarea 限制输入字数

    一般情况下很多人限制textarea的输入字数会使用 onkeyup 或 onchange事件,但是这两种事件都带有明显的不足. onkeyup 事件只能监听键盘事件,而对于用户的粘贴毫无办法:而on ...