主要内容:

2、集合

3、元组

4、字典

复习:

  字符串和元组一样,只能读不能写。列表和字典可以嵌套任何东西,列表可以嵌套列表

  L = list("hello")  # L = ['h', 'e', 'l', 'l', 'o']

  集合、字典是无序的;列表、元组、字符串是有序的

  集合、字典、列表是可以修改的;元组、字符串、数字是不能修改的

  for 语句中的else 语句,意思是for中的循环结束后,再走else中的代码,字典中的键就相当于列表可中索引的数字

集合

  集合是可修改无序不重复的序列,集合使用花括号{}

  主要作用

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

创建集合

  语法:set(可迭代对象)

  创建空集合:s = set()

s = set([3,4,5,6,7])    #创建一个数字集合{3, 4, 5, 6, 7}
w = set([2,3,4])
t = set("hello")# 遍历字符串中的每个字符,拆开成单个字符{'h', 'e', 'l', 'o'} my_set1 = set(("hello",)) # 创建含有一个元素的集合,有逗号说明是元组
my_set2 = set(("haha","wode","en"))#创建一个含有多个元素的集合 print("s:",s) # s: {3, 4, 5, 6, 7}
print("w:",w) # w: {2, 3, 4}
print("my_set1:",my_set1) # {'hello'}
print("my_set2:",my_set2) # {'en', 'haha', 'wode'}

s.add()  #添加集合

s.updata(可迭代对象)  # 添加多项

s.remove(x)  #删除指定元树x,如果x不存在则会发生错误

s.discard()  #和remove()一样,但是当删除指定元素不存在时,不会报错

s.clear()  #清空集合

s.pop()  #弹出最后一个书或弹出指定数

s = set([4,5])    #创建一个数字集合{3, 4, 5}

s.add('w')
print("添加后的s:",s) # {4, 5, 'w'} s.update(['ni','hao','ya']) # 添加多项
print("添加多项后的s:",s) # {'hao', 'ya', 4, 5, 'w', 'ni'} # 我们输入字符串试试
s.update("hid") # 将字符串拆分单个字符后,然后再一个个添加到集合中,有重复的会忽略。,
print(s) # {'hao', 'ya', 4, 5, 'w', 'h', 'ni', 'i', 'd'} s.remove("hao") # 移除元素
print("移除元素",s) # {'w', 'e', 'o', 'l', 12, 'h', 23} s.discard('ya') # 移除元素,不存在不会发生错误
print(s) # {'d', 4, 5, 'i', 'ni', 'w', 'h'} s.pop() # 随机删除集合中的元素,这个方法返回值是删除的数,不是返回None
print(s) # {4, 5, 'i', 'ni', 'w', 'h'} s.clear()
print(s) # set()

|  生成两个集合的并集

&  生成两个集合的交集

-  生成两个集合的补集

^  生成两个集合的对称补集(也就是两个集合的并集减去交集)

>  判断一个集合是另一个集合的超集

<  判断一个集合是另一个集合的子集

==,  !=  判断集合是否相同

in , not in   判断集合是否在另一个集合中

len(s),  sum(s),  max(s),  min(s),  sum(s),  any(s),  all(s)

s = set([3,4,5,6,7])    #创建一个数字集合{3, 4, 5, 6, 7}
w = set([2,3,4]) print("求交集:",s&w) # {3, 4}
print("求并集:",s | w) # {2, 3, 4, 5, 6, 7}
print("求差集:",s-w) # 减去相同的元素 {5, 6, 7}
print("求差集:",w-s) # 减去相同的元素 {2}
print("并集减去交集:",s ^ w) # {2, 5, 6, 7} print(len(s)) #
print(3 in s) # True

固定集合  frozenset

  固定集合是不可变无序的,含有唯一元素的不可迭代的集合,

  作用:固定集合可以作为字典的键,还可以作为字典的值

固定集合的构造函数

  frozenset()  创建一个空的固定集合

  frozenset(iterable)  用可迭代对象创建一个固定的集合

固定集合的运算和集合的运算完全一样

集合推导式:  {表达式  for  变量  in  可迭代对象  [if  真值表达式]} # [ ]可以省略

        集合推导式同样也可以嵌套

        {x for x in range(10)}  #返回集合

元组

  元组是不可修改有序序列,元组使用小括号(),列表使用综括号[],可以存储任意的数据类型

  元组只含一个元素时,需要在后面添加逗号,否者会被当做变量来处理

  括号可以省略

 tuple2 = (1,2,'wo',4,5)
print(tuple2) # (1, 2, 'wo', 4, 5)
tuple3 = "wo","ai","ni" # 不需要括号也可以
print(tuple3) # ('wo', 'ai', 'ni')
print(type(tuple3)) # <class 'tuple'>类型为元组类型
tup1 = () #()
print(tup1)
tup2 = (50) # 不加逗号,类型为整型
print(tup2) #50,
tup3 = (50,) # 加逗号,类型为元组
print(tup3) #(50,)

元组

 t = tuple()    #创建一个空元组
t = () #创建一个空元组
x, y, z = 100, 200, 300 # 序列赋值1 2 3 x,y,z是整型
x, y, z = (100, 200, 300) # 序列赋值 100 200 300整型
x, y, z = [100, 200, 300] # 序列赋值
x, y, z = 'ABC' # 序列赋值 A B C 字符串
T.index(v[, begin[, end]]) #返回对应元素的索引下标
T.count(x) #返回元组中对应的元素个数

1.访问元组

tup1 =(11,2,33)
print("tup1[0]:",tup1[0]) # tup1[0]: 11
print("tup1[0:2]:",tup1[0:2]) # tup1[0:2]: (11, 2)

访问元组

2.删除元组

  元组中的值是不能被删除的,但我们可以删除整个元组

tup = ('Google', 'Runoob', 1997, 2000)
del tup
print ("删除后的元组 tup : ",tup) # name 'tup' is not defined

删除整个元组

3、元组运算符

元组的相加和相乘是创建了一个新的元组,原来的元组并没有改变,也改变不了

Python 表达式 结果 描述
len((1, 2, 3)) 3 计算元素个数
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 连接
('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 复制
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3); print (x) 1 2 3 迭代

4、元组索引,截取

  L = ('Google', 'Taobao', 'Runoob')

Python 表达式 结果 描述
L[2] 'Runoob' 读取第三个元素
L[-2] 'Taobao' 反向读取;读取倒数第二个元素
L[1:] ('Taobao', 'Runoob') 截取元素,从第二个开始后的所有元素。

5、元组的其他内置函数

  len  max  min  

  tuple(列表)  将列表转换成元组

6、reversed和sorted的使用

  • reversed(可迭代对象)  # 返回反向顺序的可迭代对象(临时性的)
  • sorted(iterable, key=None, reverse=False)  # 返回已排序的列表
t = (4, 8, 6, 2, 7)
L = [x for x in reversed(t)]
# L = [7, 2, 6, 8, 4] # 原来先后顺序的反向
for x in reversed(t):
print(x) # 打印: 7 2 6 8 4 L2 = sorted(t) # L2 = [2, 4, 6, 7, 8]
L3 = sorted(t, reverse=True) # L3 = [8, 7, 6, 4, 2]

字典

  字典是可修改无序序列,字典使用花括号{},可以存储任意类型对象,

  字典由键值对组成{key:value}

  在字典中是唯一的,如果重复,后面的键值对会替换前面的。

  键必须是不可变的类型对象,只能用数字、字符串、元组充当,列表就不行,值可以取任意的数据类型

d = {"key1":'value1',"key2":'value2'}
print(d) # {'key2': 'value2', 'key1': 'value1'}
dict = {'a':2,'b':1,'b':3} # 重复最后的一个键值对会替换前面的,值不需要唯一
print(dict) # {'a': 2, 'b': 3}

键值对

创建字典

  当键不存在时,创建键,并绑定对应的值,当键存在时,修改键绑定的值

# 创建字典dict
dict1 = {'a':2,'b':1,'b':3} # 重复最后的一个键值对会替换前面的,值不需要唯一
print(dict1) # {'a': 2, 'b': 3}
dict1['c'] = 4 # 当键不存在时,增加键,并绑定对应的值,
print(dict1) # {'a': 2, 'b': 3, 'c': 4}
dict1['c'] = 134 # 当键存在时,修改键绑定的值
print(dict1) # {'a': 2, 'b': 3, 'c': 134}

创建字典

  访问字典,把键放入方括号中进行索引,但是访问字典中不存在的键会出错

 print(dict['a'])#访问字典,把键放入方括号中进行索引
print(dict["c"])#访问字典中不存在的键会出错

访问字典

  删除字典、清空字典、删除字典中的键值对

dict1 = {'a':2,'b':1,'c':3}

del dict1['a']  # 删除字典中的键"a,就相当于删除了值2
print(dict1) # {'b': 1, 'c': 3}
dict1.clear() # 清空字典的所有键
print(dict1) # {}
del dict1 # 删除字典

删除字典、清空字典、删除字典中的键值对

  字典的内置函数

  cmp(dict1, dict2)

  # 比较两个字典元素。如果两个字典的元素相同返回0,
  # 如果字典dict1大于字典dict2返回1,
  # 如果字典dict1小于字典dict2返回-1。

  len(dict)    # 计算字典元素个数,即键的总数。
  str(dict)  # 输出字典可打印的字符串表示。
  type(variable)  # 返回输入的变量类型,如果变量是字典就返回字典类型。

  字典方法

dict.clear()#删除字典内所有元素
dict.copy()#返回一个字典的浅复制

dict.fromkeys(seq[, val])#创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值

 seq = ('Google', 'Runoob', 'Taobao')
seq1 = 'fkjsahf'
dict = dict.fromkeys(seq)
print("新字典为 : %s" % str(dict))
dict = dict.fromkeys(seq, 10)
print("新字典为 : %s" % str(dict))
dict = dict.fromkeys(seq1, 10)
print("新字典为 : %s" % str(dict)) #新字典为 : {'Runoob': None, 'Taobao': None, 'Google': None}
#新字典为 : {'Runoob': 10, 'Taobao': 10, 'Google': 10}
#新字典为 : {'j': 10, 'k': 10, 'h': 10, 'a': 10, 'f': 10, 's': 10

dict.get(key, default=None)#返回指定键key的值,如果值不在字典中返回default值,default = None

 dict = {'Name': 'Zara', 'Age': 27}

 print "Value : %s" %  dict.get('Age')#Value : 27
print "Value : %s" % dict.get('Sex', "Never")#Value : Never

dict.get

dict.has_key(key)#如果键在字典dict里返回true,否则返回false
dict.items()#以列表形式返回可遍历的(键, 值) 元组数组

 dict = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www.taobao.com'}

 print "字典值 : %s" %  dict.items()

 # 遍历字典列表
for key,values in dict.items():
print key,values #字典值 : [('Google', 'www.google.com'), ('taobao', #'www.taobao.com'), ('Runoob', 'www.runoob.com')]
#Google www.google.com
#taobao www.taobao.com
#Runoob www.runoob.com

dict.items()

dict.items()返回的是两个数,一个是字典的键,一个是字典的值,

dict.keys()#以列表返回一个字典所有的键

 dict = {'Name': 'Zara', 'Age': 7}

 print "Value : %s" %  dict.keys()#Value : ['Age', 'Name']

dict.keys

dict.setdefault(key, default=None)#和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
dict.update(dict2)#把字典dict2的键-值对更新到dict里
dict.values()#以列表返回字典中的所有值
pop(key[,default])#删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

 site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}
pop_obj=site.pop('name')
print(pop_obj) # 输出 :菜鸟教程
print(site) #{'alexa': 10000, 'url': 'www.runoob.com'}

site.pop()

popitem()#随机返回并删除字典中的一对键和值。

序列相关函数:
  len(),max(),min(),sum(),any(),all(){全部都为真都返回真}
列表中的方法:
    L.index(v) #返回元素对应的索引下标
    L.insert(index,obj)
  L.count(x)
  L.remove(obj)
  L.copy()
  L.append(x)
  L.extend(lst) #L +=lit
  L.clear()
  L.sort()
  L.pop(索引)
  L.reverse() #列表的反转
深拷贝deep copy,浅拷贝shallow copy
字符串的方法:
  str.split() 分割 把字符串的空格用逗号分隔,返回列表
  str.join() 连接 字符串的分隔符换成join里面的数

小总结

1. 数据类型:
  数值类型:
    int, float, complex, bool
  容器:
    不可变的容器
      str, tuple, frozenset, bytes(字节串)
    可变的容器
      list, dict, set, bytearray(字节数组)

    有序的容器

      str(字符串) list(列表) tuple(元组) bytes(字节串) bytearray(字节数组)

    无序的容器

      set(集合) dict(字典)

 推导式总结:

    列表:[x for x in range(10)]返回列表

    集合:{x for x in range(10)}返回集合

    字典:{x:x**2 for x in range(10)}返回字典

2.值:
  None, False, True

3. 运算符
  算术运算符
    + - * / //(保留整数)  %(求余)  **(平方)
  比较运算符:
    < <= > >= == !=
    in / not in 
    is, is not
  布尔运算:
    not(非), and(与), or(或)
    +(正号) -(负号)
    &(按位与) |(按位或) ^(按位异或) ~(按位取反)
    [] (索引,切片,键索引)

  表达式:
  1
  1 + 2
  max(1,2,3) # 函数调用是表达式
  x if x > y else y, 条件表达式,把三条语句融合为一条

语句
表达式语句:
  所有的表达式都可以单独写在一行,形成一个语句,例:
  print("hello world")
  1 + 2
赋值语句:
  a = 100
  a = b = c = 100
  x, y = 100, 200  #交叉赋值
  a[0] = 100  #序列索引赋值
  dict['name'] = 'tarena' 字典赋值
  del 语句
  if 语句
  while 语句
  for 语句
  break 语句
  continue语句
  pass 语句

内建函数:

  len(x), max(x), min(x), sum(x), any(x), all(x)
  构造函数(用来创建同类型的数据对象)
  布尔值 bool(x), int(x), float(x), complex(x),
  list(x), tuple(x), str(x), dict(x), set(x),
  frozenset(x)
  abs(x)
  round(x[,n])  #四舍五入

 print(round(80.63756, 2))   # 80.64保留小数点后两位,对第三位进行四舍五入
print(round(56.6)) #

round(x[,[n])

  pow(x, y, z=None)

 print(pow(2,2)) #   2**2 = 4
print(pow(2,2,2)) # 2 ** 2 % 2 = 0

pow(x,y[,z])

  bin(x),返回一个整形int或者长整形long int的二进制表示

print(bin(10))  #0b1010

bin(int)

  oct(x)将一个整数转换成8进制字符串

print(oct(10))  #0o12

oct(int)

  hex(x)将10进制整数转换成16进制,以字符串形式表示

print(hex(195))  #0xc3

hex(int)

  chr(x),用一个范围在0~255整数(ASCII)作参数,返回一个对应的字符

 >>>print chr(0x30), chr(0x31), chr(0x61)   # 十六进制
0 1 a
>>> print chr(48), chr(49), chr(97) # 十进制
0 1 a

chr(10进制或者16进制)

  ord(x)一个字符作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,

 >>>ord('a')
97
>>> ord('b')
98
>>> ord('c')
99

ord("一个字符")

  range(start, stop, step)
  input(x), print(x)

Python 表达式 结果 描述
len((1, 2, 3)) 3 计算元素个数
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 连接
('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 复制
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3); print (x) 1 2 3 迭代

python集合、元组、字典的更多相关文章

  1. python集合与字典的用法

    python集合与字典的用法 集合: 1.增加  add 2.删除   •del 删除集合 •discard(常用)删除集合中的元素  #删除一个不存在的元素不会报错 •remove 删除一个不存在的 ...

  2. python day4 元组/字典/集合类知识点补充

    目录 python day4 元组/字典/集合类知识点补充 1. 元组tuple知识点补充 2. 字典dict的知识点补充 3. 基本数据类型set 4. 三元运算,又叫三目运算 5. 深复制浅复制 ...

  3. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  4. Python列表,元组,字典,序列,引用

    1.列表 # Filename: using_list.py # This is my shopping list shoplist=["apple", "mango&q ...

  5. 【277】◀▶ Python 列表/元组/字典说明

    目录: 前言 一.访问列表中的值 二.更新列表 三.删除列表元素 四.Python 列表脚本操作符 五.Python 列表函数 & 方法 参考:Python 列表(List)使用说明 列表截取 ...

  6. Python 列表/元组/字典总结

    序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但最常见的是列表和元组. 序列 ...

  7. Python——集合与字典练习

    集合与字典练习question1问题描述:有一个列表,其中包括 10 个元素,例如这个列表是[1,2,3,4,5,6,7,8,9,0],要求将列表中的每个元素一次向前移动一个位置,第一个元素到列表的最 ...

  8. python 列表 元组 字典 集合

    列表 lst = [i for i in range(10)] 切片 # 把下标小于2的显示出来 print(lst[:2]) # 把10个数有大到小输出 print(lst[::-1]) # 把下标 ...

  9. Python 列表&元组&字典&集合

    列表(list) 有序性,可存储任意类型的值 通过偏移存取,支持索引来读取元素,第一个索引为0 ,倒数第一个索引为-1 可变性 ,支持切片.合并.删除等操作 可通过索引来向指定位置插入元素 可通过po ...

  10. Python列表,元组,字典,集合详细操作

    菜鸟学Python第五天 数据类型常用操作及内置方法 列表(list) ======================================基本使用====================== ...

随机推荐

  1. Windows下Kafka 2.3.0的下载和安装

    Kafka是由Apache软件基金会开发的一个开源流处理平台,是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据. 特性:(1)通过O(1)的磁盘数据结构提供消息的持久化 ...

  2. SQL Server获取索引创建时间&重建时间&重组时间

    之前写过一篇博客"SQL Server中是否可以准确获取最后一次索引重建的时间?",里面主要讲述了三个问题:我们能否找到索引的创建时间?最后一次索引重建(Index Rebuild ...

  3. mysql登录错误:'Access denied for user 'root'@'localhost'

    首先是不知道怎么忽然mysql用命令行,workbench都登录不了,都提示'Access denied for user 'root'@'localhost'. 数据库卸载重装了几次都不行.好像感觉 ...

  4. Appium从入门到实战合集

    从今天起,持续更新 想要及时获得更新,请关注微信公众号 教程下载 1.连载01-Appium自我介绍和环境搭建 2.连载02-Appium启动参数配置 3.连载03-Appium入门案例 4.连载04 ...

  5. MySQL数据库解决大数据量存储问题

    转载自:https://www.cnblogs.com/ryanzheng/p/8334915.html 提问:如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如 ...

  6. Fiddler之模拟响应、修改请求或响应数据(断点)

    在测试过程中,有时候需要修改请求或响应数据,或者直接模拟服务器响应,此时可以使用fiddler进行此类操作.可以使用断点功能完成. 一.修改请求数据 在发起请求后,需要修改请求的数据时,可以设置请求前 ...

  7. Eureka工作原理及它和ZooKeeper的区别

    1.Eureka 简介: Eureka 是 Netflix 出品的用于实现服务注册和发现的工具. Spring Cloud 集成了 Eureka,并提供了开箱即用的支持.其中, Eureka 又可细分 ...

  8. 关于实现序列化接口Serializable

    关于javabean,是否需要实现序列化接口这个问题,只有当这些javabean需要通过分布式网络传输,磁盘持久化等情况下才有必要,其他情况并非必须.

  9. Web安全测试学习笔记-SQL注入-利用concat和updatexml函数

    mysql数据库中有两个函数:concat和updatexml,在sql注入时经常组合使用,本文通过学习concat和updatexml函数的使用方法,结合实例来理解这种sql注入方式的原理. con ...

  10. ETC到底要不要办?有什么好处?

    一说到ETC,开车的朋友想必不会陌生.但很多车友却不太愿意办理ETC, 究其原因,主要是一些谣言所致,一传一十传百最后变成了真实的谎言,并且对此深信不疑, 比如下面5个广泛流传的谣言     在来看看 ...