Day 8 元组,集合,字符串

1.元组

1. 什么是元组?(tuple)

元组是容器(序列),将()作为容器的标志,里面多个元素用逗号隔开:(元素1,元素2,元素3,…)

2.元组作为容器的特点

1)不可变的(不支持增,删,改)

1.查:列表获取元素的方法元组都支持

t1 = (10, 20, 30,'True',[1,2],{'a':100})
print(t1,type(t1))   #(10, 20, 30, 'True', [1, 2], {'a': 100}) <class 'tuple'>t1 = (10, 20, 30,'True',[1,2],{'a':100})
print(t1[1])    # 20
print(t1[3:])   # ('True', [1, 2], {'a': 100})

2.元组特有的或者常用的一些操作

1)只有一个元素的元组:必须在唯一的元素后面加逗号

t2 = (10)
print(t2, type(t2))   # 10 <class 'int'>(不是元组形式)
t2 = (10,)
print(t2, type(t2))    # (10,) <class 'tuple'>

2)在没有歧义的情况下,元组的小括号可以直接省略(直接将多个元素用逗号隔开,也是表示一个元组)

t3 = (10.20.30)
print(t3, type(t3))
t4 = 10,20,30
print(t4, type(t4))

3)可以通过变量的个数和元组中元素的个数保持一致,来获取元组中的每个元素

point = (100, 'abc')
print(point[0], point[1])  # 100  abcx, y = point
print(x, y)    # 100 abc

如果变量个数比元组中元素少,要在其中一个变量前加星号,其他变量正常按顺序取值,剩下的元素以列表的形式返回给带星号的变量

t4 = (10, 'True', [1, 2], {'a':100})
x1, x2, *x3 = t4
print(x1, x2, x3)    # 10 True [[1, 2], {'a': 100}]t4 = (10, 'True', [1, 2], {'a':100})
*x1, x2, x3 = t4
print(x1, x2, x3)    # [10, 'True'] [1, 2] {'a': 100}

2)有序的(支持下标操作)

3)元素的要求和列表一样(元组就是不可变的列表)

2.集合

1.什么是集合?(set)

集合是容器(序列),将{}作为容器的标志,里面多个元素用逗号隔开:{元素1,元素2,元素3,…}

2.集合作为容器的特点

可变的,无序的

元素的要求:不可变的;唯一的

1.空集合

s1 = set()
print(type(s1),len(s1))  # <class 'set'> 0

2.证明集合中元素不可变

s1 = {10, True, 'abc', (1, 2)}
print(s1)                # {True, 10, (1, 2), 'abc'}
s2 = {10, True, 'abc', [1, 2]}
print(s2)               #  TypeError: unhashable type: 'list'(报错)

3.集合无序

s1 = {10, True, 'abc', (1, 2)}
print(s1)                # {True, 10, (1, 2), 'abc'}

4.元素唯一

s3 = {1, 2, 3, 4, 1, 2, 3, 1, 2, 3}
print(s3)          # {1, 2, 3, 4}(自动去重)

5.集合自带去重功能

scores = [45, 67, 56, 78, 98, 45, 56]
new_scores =list(set(scores))
print(new_scores)       # [98, 67, 45, 78, 56]

3.数学集合运算:交集,并集,差集,对称差集,子集,真子集

1)交集(&)—求两个集合的公共部分

n1 = {1, 2, 3, 4, 5, 6,7}
n2 = {5, 6, 7, 8, 9}
result = n1 & n2
print(result)     # {5, 6, 7}

2)并集(|)------合并两个集合

n1 = {1, 2, 3, 4, 5, 6,7}
n2 = {5, 6, 7, 8, 9}
result = n1 | n2
print(result)   # {1, 2, 3, 4, 5, 6, 7, 8, 9}

3)差集(-)----集合1-集合2—> 集合1中除了包含在集合2中以外的部分

n1 = {1, 2, 3, 4, 5, 6, 7}
n2 = {5, 6, 7, 8, 9}
result = n1 - n2
print(result)    # {1, 2, 3, 4}

4)对称差集 (^) ——两个集合合并然后去掉公共部分

n1 = {1, 2, 3, 4, 5, 6, 7}
n2 = {5, 6, 7, 8, 9}
result = n1 ^ n2
print(result)   # {1, 2, 3, 4, 8, 9}

5)子集(>= ,<=) ----

s1 = {100, 200, 300, 400}
s2 = {1, 2}
print(s1>s2)      # False
s3 = {100, 200, 300, 400, 1, 2}
s4 = {1, 2}
print(s3>s4)      # True

6)真子集(>, <)

3.用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)
a. 求选课学生总共有多少人
b. 求只选了第一个学科的人的数量和对应的名字
c. 求只选了一门学科的学生的数量和对应的名字
d. 求只选了两门学科的学生的数量和对应的名字
e. 求选了三门学生的学生的数量和对应的名字

3.字符串

1.什么是字符串?

字符串是容器(序列),将’’,"","""""",’’’’’'作为容器的标志,在引号中的每一个符号都是字符串的元素,(字符串的元素又叫字符)

#写注释的时候最好用# ,否则就是字符串

2.’‘和""没有区别,’’’’’'和""""""也没有区别

注:’‘和""""引起来的字符串内容不能直接通过回车换行,’’’’’'和""""""引起来的字符串内容可以直接通过回车换行

str = 'abc' \'123'
str = """abd123"""

3.字符串作为容器的特点

1)不可变(所以所有字符串相关的可变操作全部都会产生一个新的字符串)

2)有序的,支持下标操作(切片,遍历)

3)字符串中的元素(字符):通过任何手段可以放入引号中的符号都可以是字符串的元素

4.字符

字符分为普通字符和转义字符两种

1)普通字符

除了转义字符以外的都是普通字符

2)转义字符—在一些特定符号前加 \ 在字符串中表示一些具有特殊功能或者特殊意义的符号。

\n —— 换行

str = 'aba\n123'
print(str)    # aba# 123\t       ——水平制表符(相当于按一次Tab键)```py
str = 'aba\t123'
print(str)     # aba    123

\’ ——表示一个单引号

\" ——表示一个双引号

str = 'aba\'123\"87'
print(str)     # aba'123"87

\\ ——表示一个反斜杠(使反斜杠变得普通)

str = 'aba\\n123\\t87'
print(str)     # aba\n123\t87

\u四位的十六进制编码值——将编码值转化成对应的字符

str1 = 'abc\u4e80123'
print(str1)     # abc亀123

5.电脑中的字符编码

1.字符在计算机中的存储问题(编码值)

计算机只能存数字,所以为了能够保存字符,给每一个字符对应一个固定的数字,每次需要保存字符的时候直接保存字符对应的数字。

每个符号对应的固定数字就是这个字符的编码值

2.编码表

记录字符和编码值之间一一对应关系的表,常见的编码表有两种分别是:ASCII码表和Unicode编码表

1)ASCII码表

总共有128(2**7)个字符,表中,数字字符在大写字母的前面,大写字母在小写字母的前面,大写字母和小写字母之间有其他字符

2)Unicode编码表

Unicode编码表对ASCII编码表进行了扩充,它记录了世界上所有国家,民族,语言的符号。

中文的编码范围:4e00 ~ 9fa5

3.编码值的使用

1)\u编码值(4位16进制值)

print('\u4e07')  # 万

2)char(编码值)------获取编码值对应的字符

for x in range(0x4e80, 0x4f00):print(chr(x), end = ' ')
# 亀 亁 亂 亃 亄 亅 了 亇 予 争 亊 事 二 亍 于 亏 亐 云 互 亓 五 井 亖 亗 亘 亙 亚 些 亜 亝 亞 亟 亠 亡 亢 亣 交 亥 亦 产 亨 亩 亪 享 京 亭 亮 亯 亰 亱 亲 亳 亴 亵 亶 亷 亸 亹 人 亻 亼 亽 亾 亿 什 仁 仂 仃 仄 仅 仆 仇 仈 仉 今 介 仌 仍 从 仏 仐 仑 仒 仓 仔 仕 他 仗 付 仙 仚 仛 仜 仝 仞 仟 仠 仡 仢 代 令 以 仦 仧 仨 仩 仪 仫 们 仭 仮 仯 仰 仱 仲 仳 仴 仵 件 价 仸 仹 仺 任 仼 份 仾 仿

3)ord(字符) ----获取字符对应的编码值

print(ord('贺'), ord('芳'))              # 36154 33459
print(hex(ord('贺')), hex(ord('芳')))    # 0x8d3a 0x82b3

4)字符串比较大小

print('abc' > 'ABCDEF')                # True

比较第一对不相等的字符的编码值的大小。(两个字符串同位置上的字符是一对)

Day8 元组,集合,字符串相关推荐

  1. 二、python基础(列表、元组、字符串、集合、字典、文件操作,函数基本语法及特性)...

    本节内容 列表.元组操作 字符串.列表.字典.集合操作 文件操作 函数基本语法及特性 一.列表.元组操作 列表是我们最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作: 列表操作:切 ...

  2. python day2 python基础 列表、元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码...

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

  3. python基础:序列(列表、元组、字符串)、函数、字典、集合

    Python语言运行环境: windows linux unix Macos等等 博客记录内容: Python3的所有语法.面向对象思维.运用模块进行编程.游戏编程.计算机仿真. Python是什么类 ...

  4. Python序列 数据类型 创建方式 Tuple元组 Str字符串 List列表 dict字典 Set集合 range,zip,map,enumerate

    Python 序列分类 数据类型 详细介绍 Python 主要数据类型: 元组Tuple, 字符串Str,列表List,字典Dict,集合Set 对比 元组Tuple 字符串Str 列表List 字典 ...

  5. python元组转字符串_python3字符串和字典、集合、元组的相互转换 | 吴老二

    字符串转字典 字符串转字典可以使用内置参数eval()函数,只能针对字符串双引号是字典格式的字符串. #!/usr/bin/python3 #coding:utf-8 #吴老二个人博客~~~www.w ...

  6. 3. Python 数据容器(列表、元组、字符串、集合、字典)

    1. 数据容器入门 数据容器:一种可以容纳多份数据的数据类型,容纳的每份数据称为一个元素. 每个元素,可以是任意类型数据,如:字符串.数字.布尔等. 数据容器根据特点的不同,如: 是否支持重复元素 是 ...

  7. c 提取引号中间的字符串_Python | 一文看懂Python列表、元组和字符串操作

    好文推荐,转自CSDN,原作星辰StarDust 序列 序列是具有索引和切片能力的集合. 列表.元组和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力. 列表.元组.字符串都属于序列 ...

  8. angular 字符串转换成数字_一文看懂Python列表、元组和字符串操作

    好文推荐,转自CSDN,原作星辰StarDust,感觉写的比自己清晰-大江狗荐语. 序列 序列是具有索引和切片能力的集合. 列表.元组和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力 ...

  9. python 下标 遍历列表_python中的数据结构与算法(1):列表、元组与字符串

    列表是 python 中最常用.最重要的数据结构之一. 一般来说,我们用列表来管理一组数据对象,这些对象可能是同一类型,也可能是不同类型.列表不仅记录了这些数据对象,而且也记录了它们之间的一种顺序关系 ...

  10. angular 字符串转换成数字_Python | 一文看懂Python列表、元组和字符串操作

    好文推荐,转自CSDN,原作星辰StarDust 序列 序列是具有索引和切片能力的集合. 列表.元组和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力. 列表.元组.字符串都属于序列 ...

最新文章

  1. 愉快的舞会c++_如何在5分钟内建立一个令人愉快的加载屏幕
  2. 【Binary Tree Level Order Traversal】cpp
  3. 《硝烟中的Scrum和XP》-首感
  4. agv ti 毫米波雷达_激光雷达VS毫米波雷达 谁才是自动驾驶“头号玩家”?
  5. webBrowser强制在本窗口打开,禁止在新窗口打开
  6. Oracle数据库中序列(SEQUENCE)的用法详解
  7. 解决JavaFX报错缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序
  8. basemap安装_Python画地图逃不过的basemap「完全安装手册」 | 附下载
  9. 记录用户转成超级用户的文件名字_一分钟了解Linux用户
  10. c语言中girth的作用,C语言课后习题及答案
  11. 计算机专业学生如何规划好大学四年的学习
  12. Symbian 如何如何调用Wap浏览器
  13. 黑色温敏性PNIPAM-AuNPs/CHOL-AuNPs纳米金粒修饰聚合物的制备过程
  14. 使学习效率提高5倍的20个起始步骤
  15. MATLAB的图像灰度线性变换
  16. TradingView入门
  17. floyed 算法计算最短路径
  18. flstudio插件找不到_FL Studio 中找不到 Waves 插件怎么办?
  19. SAP采购订单交期确认 Order Acknowledgement of PO
  20. 基于卷积神经网络和时域金字塔池化的语音情感分析

热门文章

  1. scratch十字回文诗 少儿编程电子学会图形化编程scratch等级考试四级真题和答案解析2021-3
  2. java 自定义classloader_编写自定义classloader实现类的动态加载
  3. 书籍 沉浸室学习方法_沉浸式学习法
  4. 日语中か行、た行的清辅音不在单词句首时发音的音便现象/浊音化现象
  5. 【论文精读】基于网络立体数据监督的单目相对深度感知
  6. 飞思卡尔比赛K60驱动OLED12864显示摄像头采集的赛道图像,完整代码分享
  7. nagios php升级,3 nagios 使用php绘制趋势图
  8. codeforces#324(div2) E. Anton and Ira 贪心
  9. 5G时代必学的WebRTC音视频通话技术
  10. Win10应用右下角小盾牌怎么解决