python的组合数据类型

python中的数据类型

Python的组合数据类型有四种,分别是:列表(list)、元组(tuple)、集合(set)、字典(dict)
这里就简单介绍一下

列表(list)

什么是列表

列表是python中可以存储多个数据的数据类型。

列表的声明

变量=list()
变量=[ ]
这两种都可以声明一个空的列表

>>> s=list()
>>> type(s)
<class 'list'>
>>>jobs=[]
>>> type(jobs)
<class 'list'>

list的操作:

  1. 增加数据
  • list.append() 默认在list末尾添加一个数据
  • list.insert() 插入,可指定位置
  • list.extend() 在末尾添加,可追加多个数据,也可以实现两个列表的组合
  1. 删除数据
  • del list[index] 直接删除
  • list.clear() 清空所有数据
  1. 修改数据
  • list[index]=数据
  1. 查询
  • 通过index(下标)查询
  1. 其它操作
  • list.copy() 列表的拷贝,结果是一个列表
  • list.count() 统计元素出现的次数
  • list.index() 查看元素的下标/索引
  • list.reverse 反转
  • list.sort 按自然数排列,只能排列纯数字或者纯字符的列表,不能排列各种数据类型混合的列表
g1=[1000,'可口可乐(罐装)',2.5,100]
>>> print(g1)
[1000, '可口可乐(罐装)', 2.5, 100]
>>> g1.append("密封")    #添加一个数据,在最后添加
>>> print(g1)
[1000, '可口可乐(罐装)', 2.5, 100, '密封']
>>> g1.insert(1,'美国')    #指定位置的添加
>>> print(g1)
[1000, '美国', '可口可乐(罐装)', 2.5, 100, '密封']
>>> g2=[1001,'可口可乐(瓶装)',3.0,100]
>>> g1.append(g2)     #把g2当做有个数据添加到最后
>>> g1
[1000, '美国', '可口可乐(罐装)', 2.5, 100, '密封', [1001, '可口可乐(瓶装)', 3.0, 100]]
>>> g1.extend(g2)    #添加多个数据
>>> g1
[1000, '美国', '可口可乐(罐装)', 2.5, 100, '密封', [1001, '可口可乐(瓶装)', 3.0, 100], 1001, '可口可乐(瓶装)', 3.0, 100]
>>> del g1[6]      #删除指定的数据
>>> g1
[1000, '美国', '可口可乐(罐装)', 2.5, 100, '密封', 1001, '可口可乐(瓶装)', 3.0, 100]
g1[0]=1
>>> g1
[g1[2]
'可口可乐(罐装)'
>>> g3=g1.copy()      #拷贝
>>> g3
[1, '美国', '可口可乐(罐装)', 2.5, 100, '密封', 1001, '可口可乐(瓶装)', 3.0, 100]1, '美国', '可口可乐(罐装)', 2.5, 100, '密封', 1001, '可口可乐(瓶装)', 3.0, 100]
g1.count(2.5)      #统计一个元素出现的次数
1
>>> g1.reverse()    #翻转列表
>>> g1
[100, 3.0, '可口可乐(瓶装)', 1001, '密封', 100, 2.5, '可口可乐(罐装)', '美国', 1]

元组

什么是元组

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

元组的声明

元组使用小括号,元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可
t=tuple()
t1=()
t2=(1,2,3,4,)
但是t3=('hello') ->type(t3)->str
可以t4=('hello',) 在后面加一个逗号
元组的方法:count,index
元组中的操作类型只有这两个方法

>>> t=tuple()
>>> type(t)
<class 'tuple'>
>>> t1=()
>>> type(t1)
<class 'tuple'>
>>> t3=('hello')
>>> type(t3)
<class 'str'>
>>> t4=("hello",)
>>> type(t4)
<class 'tuple'>

其中tuple.count() 是统计一个元素出现的次数
tuple.index() 是查看一个元素在元组中的下标

集合

什么是集合

需求场景:我们需要存放一组数据,但是不希望存放重复的数据!用户的账号!
集合:通过哈希(hash)算法在一个容器中存放多个没有顺序的不可以重复的数据

声明集合:

s1 = set() <class ‘set’>
s2 = {“a”} <class ‘set’>
s3 = {} <class ‘dict’>
应为集合和字典都是使用{}表示,但是s3={}声明的是一个字典

集合的操作

set.add   增加
set.clear   清空
set.copy   复制
set.difference   两个集合之间求差集
set.difference_update   求差集并且用不一样的数据重新给自己赋值
set.discard   移除元素
set.intersection   求交集
set.intersection_update   求交集并给自己赋值
set.pop   随机删除一个
set.remove   指定删除某个数据
set.union   求并集
set.update   求并集并给自己赋值

>>> s1={1,2,3,4,5,6}
>>> s2={4,5,6,7,8,9}
>>> s1
{1, 2, 3, 4, 5, 6}
>>> s2
{4, 5, 6, 7, 8, 9}
>>> s1.add(0)   #添加一个元素
>>> s1
{0, 1, 2, 3, 4, 5, 6}
>>> s1.difference(s2)   #s1与s2求差集
{0, 1, 2, 3}
>>> s1.difference_update(s2)   #s1与s2求差集,并把自己等于所得差集
>>> s1
{0, 1, 2, 3}
s1.discard(0)      #删除一个指定元素,若元素不存在,则不报错
>>> s1
{1, 2, 3}
>>>s1
{1, 2, 3, 4, 5, 6}
>>> s1.intersection(s2)  #s1与s2取交集
{4, 5, 6}
>>> s1.intersection_update(s2)    #s1与s2取交集,并把自己等于交集
>>> s1
{4, 5, 6}
>>> s1.pop()    #随机删除一个元素
4
>>> s1
{5, 6}
>>> s1.remove(5)    #删除一个指定元素,若元素不存在,则报错
>>> s1
{6}
>>> s1={2,3,4,5,6}
>>> s1
{2, 3, 4, 5, 6}
>>> s1.union(s2)      #s1与s2取并集
{2, 3, 4, 5, 6, 7, 8, 9}
>>> s1
{2, 3, 4, 5, 6}
>>> s2
{4, 5, 6, 7, 8, 9}
>>> s1.update(s2)    #s1与s2取并集,并把自己等于并集
>>> s1
{2, 3, 4, 5, 6, 7, 8, 9}

字典

什么是字典

可以存储多个key:value 键值对数据的组合数据类型

字典的声明

d1 = dict()    # 空字典
d2 = {}     # 空字典

>>> d1  = dict()    # 空字典
>>> d2 = {}
>>> type(d1)    # 空字典
<class 'dict'>
>>> type(d2)
<class 'dict'>
>>> d1
{}
>>> d2
{}

字典的操作

doct.clear   清空
doct.copy   复制
doct.fromkeys   通过制定的key生成一个值为None的字典
doct.get   根据key获取对应的值
doct.items   获取所有的k:v键值对
doct.keys   获取所有的键
doct.pop   根据key值删除一个键值对
doct.popitem   随机删除一个键值对
doct.setdefault    增加一个数据,如果数据存在~修改
doct.update   把字典dict2的键/值对更新到dict里
doct.values   获取所有的值
字典中,增加数据
f[key] = value
f.setdefault(key, value)
f.update(key, value)
删除数据:删除一个键值对
f.pop(key)    删除制定的key:value键值对
f.popitem()    随机删除一个键值对
def f[key]    删除制定的key:value键值对
修改数据
f[key] = value
f.update({key, value})
查询数据
v = f[key]
v = f.get(key)

>>> d1={1:'a',2:'b',3:'c','dict':'字典','list':'列表','tuple':'元组',}
>>> d1
{1: 'a', 2: 'b', 3: 'c', 'dict': '字典', 'list': '列表', 'tuple': '元组'}
>>> d2={1:100,2:200,3:300,4:400,5:500,6:600}
>>> d2
{1: 100, 2: 200, 3: 300, 4: 400, 5: 500, 6: 600}
>>> d3=dict.fromkeys('1,2,3,4,5,6')    #通过制定的key生成一个值为None的字典
>>> d3
{'1': None, ',': None, '2': None, '3': None, '4': None, '5': None, '6': None}
>>> d1.get('dict')    #t通过键查找值
'字典'
>>> d1.items()      #返回所有键值对
dict_items([(1, 'a'), (2, 'b'), (3, 'c'), ('dict', '字典'), ('list', '列表'), ('tuple', '元组')])
>>> d1.keys()    #返回所有键
dict_keys([1, 2, 3, 'dict', 'list', 'tuple'])
>>> d1.values()    返回所有值
dict_values(['a', 'b', 'c', '字典', '列表', '元组'])
>>> d2
{1: 100, 2: 200, 3: 300, 4: 400, 5: 500, 6: 600}
 d2.pop(1)      #删除指定键的键值对
100
>>> d2
{2: 200, 3: 300, 4: 400, 5: 500, 6: 600}
 d2.popitem()    #随机删除键值对
(6, 600)
>>> d2
{2: 200, 3: 300, 4: 400, 5: 500}
>>>d2.setdefault(7)    #增加一个数据,如果数据存在~修改
>>> d2
{2: 200, 3: 300, 4: 400, 5: 500, 7: None}
d1
{1: 'a', 2: 'b', 3: 'c', 'dict': '字典', 'list': '列表', 'tuple': '元组'}
>>> d2
{2: 200, 3: 300, 4: 400, 5: 500, 7: None}
>>> d1.update(d2)     #把字典2整合到字典1中
>>> d1
{1: 'a', 2: 200, 3: 300, 'dict': '字典', 'list': '列表', 'tuple': '元组', 4: 400, 5: 500, 7: None}

遍历字典

for k in f.keys():# 直接循环字典中的key数据
    print(k, f.get(k)) # value数据通过key数据获取

for k, v in f.items():# 直接循环字典中的key和value数据
    print(k, v)

>>> for k in d1.keys():
...     print(k,d1.get(k))      # value数据通过key数据获取
...
1 a
2 200
3 300
dict 字典
list 列表
tuple 元组
4 400
5 500
7 None
>>> for k,v in d1.items():      # 直接循环字典中的key和value数据
...     print(k,v)
...
1 a
2 200
3 300
dict 字典
list 列表
tuple 元组
4 400
5 500
7 None
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,928评论 2 89
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,651评论 18 139
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 18,952评论 17 410
  • 尽管青春类影音这两年在中国大行其道,真实生活里谈起这个词儿还是觉得煽情和矫情。 偶然重看《匆匆那年》,没想到会有那...
    漴生阅读 169评论 0 0
  • 二十六.凤将军 爱倾城 凤将军 爱倾城 天荒 四勾玉 【决死】——出牌阶段,对于你攻击距离内的角色,你可以把黑色手...
    萧寒浅阅读 177评论 0 1