一、列表

列表表示一组有序的元素,这些元素可以是数字、字符串,也可以是另一个列表。

# ----------------------------------------
# 列表(list):一组有序的元素
# ----------------------------------------
# 定义一个空的列表
s = []
# 定义一个全是数字的成绩列表
score = [90, 92, 88, 79, 95, 82]

# 可以通过索引值来访问列表中的元素,从左到右,起始值为0,最后一个元素为n-1
first_one = score[0]
# 也可以从右到左通过一个负数索引值进行访问,倒数第一个元素为-1,最后一个元素为-n
last_one = score[-1]

# 修改元素的值
score[-1] = 80
print(score)

# 列表中的元素可以是不同的数据类型
student_info = ['1001', '张晓晓', '女', 12, [86, 88, 92]]
# 使用切片打印学生基本信息
print("学生基本信息:", student_info[1:4])

# + 将运算符两侧的列表组合在一起
grade = ['七年级']
student_info = grade + student_info
print(student_info)

# 同理也可以用+=
student_info += ['广东省', '广州市']
print(student_info)

# append() 在列表尾部追加新的元素(一次只能追加一个元素)
student_info.append('番禺区')
print(student_info)

# extend() 在列表尾部追加另一个列表(追加的不是列表,而是列表中的元素)
address = ['南村镇', '东环街']
student_info.extend(address)
print(student_info)

# insert(x, y) 向列表中的x位置插入数据y
student_info.insert(-1, "同乐路") #由于东环街是-1,对应同乐路,则不是添加到末尾
student_info.insert(len(student_info), "同乐路") #把同乐路加入到末尾
print(student_info)

# * 将列表中的元素重复n次,并且拼接成一个列表
scores = [90, 100] * 5
print(scores)

# 使用in和not in判断某个元素是否存在于列表中
print("100 in scores:", 100 in scores)
print("100 not in scores:", 100 not in scores)

# len() 返回列表的长度
score = [90, 92, 88, 79, 95, 90, 82]
print("score列表中有%d个元素" % len(score))

# max() 返回列表元素中的最大值(元素的数据类型必须一致,否则会出错)
print("最高分是:", max(score))
# min() 返回列表元素中的最小值
print("最低分为:", min(score))
# sum() 返回列表中所有元素的和
print("总分:", sum(score))

# count(x) 统计列表中相同元素值x出现的次数
print("90分有%d个" % score.count(90))

# sort() 将列表中的元素进行排序,默认为升序(需要是统一的单一数据类型)
score.sort()
print("升序排列:", score)
score.sort(reverse=True)
print("降序排列:", score)

# index(x) 获得指定元素x第一次在列表中的位置(索引值)
index = score.index(90)
print("90分的排名为:", index + 1)

# pop(index) 删除列表中索引值为index的元素,默认删除最后一个元素
score.pop()
print("删除一个最低分:", score)

# reverse() 将列表中的元素颠倒排列
score.reverse()
print("将列表中的元素进行颠倒:", score)

# remove(value) 将列表中元素值为value的项删除,一次只删除一个元素
score.remove(90)
print("删除90分:", score)

# clear() 清空列表
score.clear()
print(score)

score = [90, 92, 88, 79, 95, 90, 82]
# del 删除指定位置的元素,并且可以使用切片的方式进行删除
del score[2]
print(score)
del score[0:3]
print(score)
del score
print(score)

二、元组
元组也是一组有序的元素,一旦定义,就不能更改了。

# ----------------------------------------
# 元组(tuple):一组有序的元素。定义后元素不可修改
# ----------------------------------------
# 创建只有一个元素元组,必须在元素之后加上逗号
# t = ()
# one = (100)
only_one = (100,)

# + 对元组进行拼接,生成一个新的元组
info1 = '1001', '张晓晓'
info2 = ('女', '初一')
print("info1+info2:", info1 + info2)

# * 重复多次
print("info1*3:", info1 * 3)

# 使用in和not in判断某个元素是否存在于元组中
print("张晓晓 in info1:", '张晓晓' in info1)
print("张晓晓 not in info1:", '张晓晓' not in info1)

student_info = ('1001', '张晓晓', '女', '初一', 12, '广州')
# len() 返回元组的长度(元组中元素的个数)
print("元组的长度:", len(student_info))
# 同样可以通过索引和切片的方式访问元组
print(student_info[1:])

tuple1 = (88, 93, 76, 90)
# max() 返回元组中元素的最大值(元组中的数据类型必须一致)
print("最大值为:", max(tuple1))
# min() 返回元组中元素的最小值(数据类型必须一致)
print("最小值为:", min(tuple1))

# 将列表转换为元组
list2 = [100, 200, 300, 200, 400]
tuple2 = tuple(list2)
print("将列表转换为元组:", tuple2)

# sum() 返回元组中所有元素的和
print("总计:", sum(tuple2))

# count() 统计指定元素在元组中出现的次数
print("200出现的次数:", tuple2.count(200))

# index() 返回指定元素第一次在元组中出现的索引值
print("200第一次出现的位置:", tuple2.index(200))

# 将元组转换为列表
list3 = list(student_info)
print("将元组转换为列表:", list3)

# 元组中的元素值不允许删除,只能使用del语句删除整个元组
del student_info

三、集合
集合是一个无序的不重复的元素序列

# ----------------------------------------
# 集合(set):一个无序的不重复元素序列
# ----------------------------------------
# 创建一个空集合,必须使用set(),不能使用{}
set1 = set()

# 集合会自动去掉重复数据
cities = {'北京', '上海', '广州', '深圳', '海南', '广州'}
print(cities)

# 可以先创建一个列表,然后使用set函数将列表转化为集合
list2 = [100, 200, 300, 400, 300]
set2 = set(list2)
print(set2)

# 通过一个字符串来创建字符集合
set3 = set("Hello")
print(set3)

# 使用in和not in判断某个元素是否存在于集合中
print("200 in set2:", 200 in set2)
print("00 not in set2:", 200 not in set2)

a = {100, 200, 300}
b = {300, 400}
# a-b:差集(返回一个新的集合,包含a中有但b中没有的元素)
print("a-b:", a - b)
print(a.difference(b))

# a|b:并集(返回一个新的集合,包含a和b中的每一个元素)
print("a|b:", a | b)
print(a.union(b))

# a&b: 交集(返回一个新的集合,包含a和b中的公共元素)
print("a&b:", a & b)
print(a.intersection(b))

# a^b: 对称差集(返回一个新的集合,包含没有同时出现在a和b中的元素)
print("a^b:", a ^ b)
print(a.symmetric_difference(b))

# add() 往集合中添加一个元素
a.add(400)
print("add:", a)
# update() 更新集合中的元素。可以往集合中添加单个元素、列表、元组等
a.update([500, 600])
print("update:", a)

# a<=b:判断a是否是b的子集(检查a中的每一个元素是否都在b中)
print("a是b的子集:", a <= b)
# a>=b: 判断a是否是b的父集(检查b中的每一个元素是否都在a中)
print("a是b的父集:", a >= b)

# remove(x) 将元素x从集合中移除,如果元素不存在会报错
a.remove(600)
print("remove result:", a)

# discard(x) 也是将元素x从集合中移除,当元素不存在时不会报错
a.discard(500)
print("discard:", a)

# pop() 随机删除集合中的一个元素
a.pop()
print("pop:", a)

# len() 计算集合中元素的个数
print("集合中的元素个数:", len(a))

# clear() 清空集合
a.clear()

四、字典

字典是一种可变容器模型,可以存储任意类型的对象,由键-值对组成。
# ----------------------------------------------------------
# 字典(dict):一种可变容器模型,可以存储任意类型的对象。由键-值对组成
# ----------------------------------------------------------
# 键必须是唯一且不可改变的
dic = {1: '一季度', '2': '二季度'}
# 不能通过索引访问,只能通过键进行访问
print(dic['2'])

dic = {1: '一季度', '2': '二季度', '2': '三季度'}
print(dic)

dic['2'] = '二季度' # 修改元素的值
dic['3'] = '三季度' # 增加新的键值对
print(dic)

del dic['3'] # 删除字典中的元素
print(dic)

# len() 计算字典元素的个数,即键值的总数
print("字典长度为:", len(dic))

# str() 将字典的元素转化为可打印的字符串形式
print(str(dic))

# copy() 复制字典(浅拷贝)
dic1 = dic.copy()
print("dic1:", dic1)

# clear() 清除字典中的所有元素
dic.clear()
print("dic:", dic)

dic3 = {'一季度': 10000, '二季度': 12000, '三季度': 18000}
# get(key[, value]) 返回指定键的值。如果指定的键不存在,返回value
print("一季度的销量为:", dic3.get('一季度'))
print("四季度的销量为:", dic3.get('四季度'))
print("四季度的销量为:", dic3.get('四季度', '未统计'))

# setdefault(k[, v]) 如果k存在,就返回其值;否则返回v,并将新的元素添加到字典中
print(dic3.setdefault('一季度'))
print(dic3.setdefault('四季度', 17000))

# 使用in和not in检测键(key)是否存在于字典中
print("一季度存在于字典中:", '一季度' in dic3)
print("四季度不存在于字典中:", '四季度' not in dic3)

# items() 使用字典中的元素创建一个由元组对象组成的列表(一个元组对应一个键-值对)
print(dic3.items())

# keys() 使用字典中的键创建一个列表
print(dic3.keys())

# values() 使用字典中的值创建一个列表
print(dic3.values())

# dic1.update(dic2) 将字典dic2的键/值对更新到dic1中
dic4 = {'一月份': 3500, '二月份': 3800}
dic3.update(dic4)
print(dic3)

# pop() 删除字典中指定key对应的值,并且返回被删除的值
print(dic3.pop('一月份'))

# popitem() 删除字典中的最后一元素,并返回这个元素的键值
print(dic3.popitem())

python -- 结构数据类型(列表、元组、集合、字典)的更多相关文章

  1. python基础(五)列表,元组,集合

    列表 在python中是由数个有序的元素组成的数据结构,每一个元素对应一个index索引来隐式标注元素在列表中的位置.是python中最常用的一种数据类型.需要注意的是列表中可以有重复相同的数据. 列 ...

  2. 【python基础】之元组 集合 字典

    元组 元组:元组和列表类似.但是元组中的元素是固定的(不能给一个元组添加,删除和替换元素以及重新排序) 1.创建元组 t1 = () #创建一个空元组 t2 = (1, 2, 3) t3 = tupl ...

  3. python学习之列表元组,字典

    list:元素性质可以不一致,元素还可以是list,可类似数组方法进行索引(也可以用负数索引,-1表示最后一个),可用.append('')进行动态增加,可用pop()删除最后一个或者pop(i)删除 ...

  4. Python基本数据类型--列表、元组、字典、集合

    一.Python基本数据类型--列表(List) 1.定义:[ ]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素. 2.列表的创建: # 方式一 list1 = ['name','ag ...

  5. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

  6. python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍

    目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...

  7. Python摸爬滚打之day04----基本数据类型(列表,元组)

    1.列表 列表是可变的, 有序的数据类型,列表是按照添加顺序来保存的,可以存放各种数据类型. 1.1    列表的切片(同字符串) 1.2    列表的增删改查 注意: 列表是可以直接在列表上面进行操 ...

  8. Python—列表元组和字典

    Python-列表元组和字典 列表 元组 字典 列表: 列表是Python中的一种数据结构,他可以存储不同类型的数据.尽量存储同一种类型 列表索引是从0开始的,我们可以通过索引来访问列表的值. 列表的 ...

  9. python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍

    目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...

  10. python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍

    目录 python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍. 二丶列表,其它语言称为数组 1.列表的定义,以及语法 2.列表的使用,以及常用方法. 3.列表的常用操作 ...

随机推荐

  1. Firfox、Chrome之python-selenium环境搭建

    公共步骤: 一.文件下载 下载地址: python安装包:https://www.python.org/getit/ PyCharm 安装包:http://www.jetbrains.com/pych ...

  2. 身为一枚优秀的程序员必备的基于Redis的分布式锁和Redlock算法

    1 前言 今天开始来和大家一起学习一下Redis实际应用篇,会写几个Redis的常见应用. 在我看来Redis最为典型的应用就是作为分布式缓存系统,其他的一些应用本质上并不是杀手锏功能,是基于Redi ...

  3. 【题解】Luogu P1011 车站

    题目描述 火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上.下车,但上.下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人.从第3站起( ...

  4. CMD批处理(1)——批处理常用命令总结

    echo 打开回显或关闭回显功能,或显示消息.如果没有任何参数,echo命令将显示当前的回显设置. 命令格式1:echo [{on|off}] 命令格式2:echo [message]   例.在命令 ...

  5. 基于ABP落地领域驱动设计-00.目录和小结

    <实现领域驱动设计> -- 基于 ABP Framework 实现领域驱动设计实用指南 翻译缘由 自 ABP vNext 1.0 开始学习和使用该框架,被其优雅的设计和实现吸引,适逢 AB ...

  6. React 开发环境准备

    1. 使用reactjs,一般有以下两种方式: (1)通过script标签引入reactjs.这种方式不推荐使用,如果我们的项目比较大,就需要对项目进行拆分,于是页面就需要通过script标签引入很多 ...

  7. 『心善渊』Selenium3.0基础 — 20、Selenium对Cookie的操作

    目录 1.Cookie介绍 2.Session介绍 3.Cookie工作原理图解 4.Cookie内容参数说明 5.Selenium操作Cookie的API 6.Selenium操作Cookie的示例 ...

  8. hdu 1394 线段树计算逆序数

    线段树计算逆序数的原理: 用线段树来统计已插入的数的个数(所以要保证最大的那个数不能太大,否则数组都开不了),然后每插入一个数,就查询比插入的数大的个数,累加即可. 这个题还有一个特点就是,题目给的是 ...

  9. acwing 4 多重背包问题 I

    多重背包 有 n种物品 一共有 m大小的背包,每种物品的价值 大小 个数 为 s[i],v[i],num[i]; #include<bits/stdc++.h>//cmhao #defin ...

  10. Java实验项目二——小学生考试系统(简单四则运算)

    Program:设计实现一个小学生数学考试系统,完成随机出题(简单的四则运算),学生答题,自动判分的功能. Description:代码如下: 1 /* 2 * Description:面向考试系统建 ...