一、元组

元组与列表基本相同,不同之处在于元组只能存不能取,当多个值没有改的需求时,用元组更合适

元组的基本操作

1.创建元组:

t = (1, 2, 3, 4, 2,4,)
t = (1,) #单个元组的命名要加上逗号,否则识别为int型

2.需要掌握的操作:

print(t.count(4))#返回4在元组中出现的次数
print(t.index(2,3,7))#返回2在元组中,从索引3开始查找到7所出现位置的索引

修改元组:

直接通过元组下标修改元组是非法的,不过可以通过凭借完成。

t = (1, 2, 3, )
t1 = (3, 4, 5,)
t = t + t1
print(t)#结果(1, 2, 3, 4, 5)

删除元组:元组是无法删除的,只能通过del(会报错)

例题:将用户输入的菜名添加到元组中

   思路:元组不可以直接添加内容,但是元组与元组之间是可以拼接的,通过将接受到的数据转换成元组,然后与一个空元组进行拼接。

# foods = ()
# for i in range(5):
# food = tuple(input('请输入菜名:').strip())
# foods = foods+food
# print(foods)

二、字典类型

键必须是唯一的,但值则不必。键重名时,后面声明的会覆盖前面的值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

声明字典的几种方法:

# 1.
# dic = {
# 'name': 'zfj',
# 'age': 18,
# 'sex': 'male',
# }
# print(dic)
# 2.
# dic1 = dict(name='zfj', age=18, sex='male',)
# dic1 = dict(name='zfj', age=18, 2='male',)# 必须保证key为字符串类型,否则会报错
# print(dic1)
# 3.
# dic2 = dict([['name', 'zfj', ], ('age', 18, ), ('sex', 'male')])
# print(dic2)
# 4.所有键的值都相同或者赋予初始值
# dic3 = {}
# dic3 = dic3.fromkeys(('name', 'age', 'sex'), 'value1')
# print(dic3)

访问字典:字典通过key访问值,要是访问不存在的key则会报错

dic = {
'name': 'zfj',
'age': 18,
'sex': 'male',
}
print(dic['job'])# 出错

修改字典:

dic = {
'name': 'zfj',
'age': 18,
'sex': 'male',
}
dic['job'] = 'SH'
print(dic) # 向字典中添加'job':'SH'
dic['name'] = 'ZFJ'
print(dic)# 修改字典中的'zfj'为'ZFJ'
print(dic.get('name')) #get是获得键值为name的value
dic1 = {'xxx': ''}
dic.update(dic1)# update 是将dic1中的内容添加到dic中
print(dic)

setdefault的用法:

dic.setdefault('name', 'dsb')#如果字典中已经存在key(‘name’)那么不修改原值
print(dic)
dic.setdefault('job', 'SH')#如果字典中没有存在key(‘job’)那么添加内容置字典
print(dic)

删除字典:

# dic.pop('age')
# print(dic)# 按键值删除
# dic.popitem()
# print(dic)# 随机返回并删除字典中的一对键和值(一般删除末尾对)。
# dic.clear()
# print(dic)# 清空字典

三、集合

是一个无序不重复元素的序列

特点:1.每一个值都是不可变类型 2.元素不能重复 3.集合内的元素无序

用处:关系运算,去重

定义:在{}内用逗号分隔开的多个值或者 set() 函数创建集合。 注:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

集合去重也具有局限性:1.无法保证原数据的顺序。2.当某一个数据中包含多个值全部为不可变类型才能使用集合

集合基本操作:

# a = {'小明', '小李', '小王', 'abc'}
# b = {'abc', 'qwe', 'fgh', '小李'}
# print(a & b) # 交集
# print(a | b) #合集
# print(a ^ b) #对称差集 不包含交集的所有部分
# print(a - b)# a与b的差集 就是输出a中除了包含b中有的内容
# print(b - a)# b与a的差集 就是输出b中除了包含a中有的内容

添加,删除:

# a.add('xiaowang') #添加,如果元素已存在,则不进行任何操作
# a.update('s')
# a.update('b')# update不仅可以添加字符串还可以添加列表,元组,字典
# a.remove('小明')#删除'小明' 不存在则报错
# a.discard('小明')#删除, 不存在不会报错
# a.pop()#随机删除
print(a)

python元组,集合类型,及字典补充的更多相关文章

  1. python基础---集合类型(Sets)

    集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的重复.以及科学计算,例如交集.并集.差分和对称差分.通俗点来说,集合是一个无序 ...

  2. [转载]Python 元组、列表、字典、文件

    python的元组.列表.字典数据类型是很python(there python is a adjective)的数据结构.这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的益 ...

  3. Python中集合类型的使用

    集合类型 多个不重复元素的无序组合 集合类型的表示 建立非空集合的方式可以用{}来表示 采用set()来表示 集合类型的操作符 S|T 返回一个新集合,这个集合包含S与T中的所有元素. S-T 返回一 ...

  4. 3--Python入门--Python数据集合类型--元组

    在基础数据类型的基础上,Python有6中数据集合的类型: 列表list,最常用的数据类型,以[]为标识 元组tuple,和list很相似,但是不能二次赋值,用()标识 集合set,和list类似,但 ...

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

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

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

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

  7. 5--Python入门--Python数据集合类型--字典

    列表list,最常用的数据类型,以[]为标识 元组tuple,和list很相似,但是不能二次赋值,用()标识 集合set,和list类似,但是set中没有重复的元素,常用于集合间的运算,用{}标识 字 ...

  8. 4--Python入门--Python数据集合类型--集合

    在基础数据类型的基础上,Python有6中数据集合的类型: 列表list,最常用的数据类型,以[]为标识 元组tuple,和list很相似,但是不能二次赋值,用()标识 集合set,和list类似,但 ...

  9. 2--Python入门--Python数据集合类型--列表

    在基础数据类型的基础上,Python有6中数据集合的类型: 列表list,最常用的数据类型,以[]为标识 元组tuple,和list很相似,但是不能二次赋值,用()标识 集合set,和list类似,但 ...

  10. Python set集合类型操作总结

    Python中除了字典,列表,元组还有一个非常好用的数据结构,那就是set了,灵活的运用set可以减去不少的操作(虽然set可以用列表代替) 小例子 1.如果我要在许多列表中找出相同的项,那么用集合是 ...

随机推荐

  1. JS处理数据四舍五入

    一,使用Math.toFixed toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. 语法NumberObject.toFixed(num) 但是网友说toFixed bug比 ...

  2. Left join update和 ROW_NUMBER

    (1)Left join 更新update a set a.name=b.name from a left join b on a.id=b.stuid(2)ROW_NUMBERselect ROW_ ...

  3. (9)EvenOddJump

    一.问题描述 一只青蛙从数组(A)的每一个元素向数组尾部跳动.跳动规则如下: 当奇数跳的时候,就是第1.3.5.7....次进行移动时候,移动规则A[i] <= A[j],  并且A[j] = ...

  4. [C++]PAT乙级1011. A+B和C (15/15)

    /* 1011. A+B和C (15) 给定区间[-2^31, 2^31]内的3个整数A.B和C,请判断A+B是否大于C. 输入格式: 输入第1行给出正整数T(<=10),是测试用例的个数.随后 ...

  5. c/cpp枚举练习

    enum aa{ am,bm }ha=bm,hb; int main(int argc, char *argv[]){ printf("%d %d",ha,am); //1 1 ; ...

  6. 第21月第9日 windows下使用vim+ctags+taglist

    1. windows下使用vim+ctags+taglist 最近在公司的同事指导下,学会使用这个东西编写代码,效率提高了不少.所以记录下来,方便大家使用. 1. 下载gvim74.exe文件,并安装 ...

  7. springfox-swagger2

    简介 springfox是通过注解的形式自动生成API文档,利用它,可以很方便的书写restful API: swagger主要用于展示springfox生成的API文档: 依赖 <depend ...

  8. python小练习---TCP客户端

    这是python黑帽子上的起始练习,我对其中的用到的函数做了注释,以便日后便于理解. 该程序可以访问百度,返回响应信息. 另外,我注释还有一部分UDP客户端的语句,TCP和UDP对比便于记忆. # - ...

  9. 为什么HTTPS比HTTP安全,以及两者的优缺点

    一.HTTPS简介 HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全:另一种就是确认网站的真实性. HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HT ...

  10. 20165234 《Java程序设计》第二周学习总结

    第二周学习总结 教材学习内容总结 第二章 标识符与关键字 1.标识符 其本质是文件名字. 由字母.下画线.美元符号和数字组成,长度不受限制. 标识符的第一个字符不能为数字,标识符不能为关键字(如int ...