首页 > 编程语言 >python 运算符 列表操作 元组

python 运算符 列表操作 元组

时间:2023-12-31 09:03:50浏览次数:63  
标签:python s2 s1 列表 运算符 索引 var 元组

可以对字符串进行切片访问(同时适用于字符、列表、元组等)。
字符串从左往右,索引从0开始;从右往左,索引从–1开始。可以取字
符串中的片段,切片索引按左闭右开原则:
var = 'Hello World!'
# 按索引取部分内容,索引从0开始, 左必须小于右
# 支持字符、列表、元组
var[0] # 'H'
# 从右往左,索引从-1开始
var[-1] # '!'
var[-3:-1] # 'ld'
var[1:7] # 'ello W'(有个空格,不包含最后一位索引7)
var[6:] # 'World!' (只指定开头,包含后面所有的字符)
var[:] # 'Hello World!'(相当于复制)
var[0:5:2] # 'Hlo'(2为步长,按2的倍数取)
var[1:7:3] # 'ello W' -> 'eo'
var[::-1] # '!dlroW olleH'(实现反转字符功能)
下面是一些最常用的字符操作:
len('good') # 4 (字符的长度)
'good'.replace('g', 'G') # 'Good' (替换字符)
'山-水-风-雨'.split('-') # ['山', '水', '风', '雨'] (用指定字符分隔,默认空格)
'好山好水好风光'.split('好') # ['', '山', '水', '风光']
'-'.join(['山','水','风','雨']) # '山-水-风-雨'
'和'.join(['诗', '远方']) # '诗和远方'
'good'.upper() # 'GOOD' (全转大写)
'GOOD'.lower() # 'good' (全转小写)
'Good Bye'.swapcase() # 'gOOD bYE' (大小写互换)
'good'.capitalize() # 'Good' (首字母转大写)
'good'.islower() # True (是否全是小写)
'good'.isupper() # False (是否全是大写)
'3月'.zfill(3) # '03月' (指定长度,如长度不够,前面补0)

 

b / a # 2.1
a ** b # 表示10的21次幂
b % a # 1 (取余)
# 地板除,相除后只保留整数部分,即向下取整
# 但如果其中一个操作数为负数,则取负无穷大方向距离结果最近的整数
9//2 # 4
9.0//2.0 # 4.0
-11//3 # -4
-11.0//3 # -4.0

 

a = [1, 2, 3]
len(a) # 3(元素个数)
max(a) # 3(最大值)
min(a) # 1(最小值)
sum(a) # 6(求和)
a.index(2) # 1(指定元素位置)
a.count(1) # 1(求元素的个数)
for i in a: print(i) # 迭代元素
sorted(a) # 返回一个排序的列表,但不改变原列表
any(a) # True(是否至少有一个元素为真)
all(a) # True(是否所有元素为真)
a.append(4) # a: [1, 2, 3, 4](增加一个元素)
a.pop() # 每执行一次,删除最后一个元素
a.extend([9,8]) # a: [1, 2, 3, 9, 8](与其他列表合并)
a.insert(1, 'a') # a: [1, 'a', 2, 3](在指定索引位插入元素,索引从0开始)
a.remove('a') # 删除第一个指定元素
a.clear() # [](清空)

 

需要熟练掌握列表的推导式,可以由可迭代对象快速生成一
个列表。推导式就是用for循环结合if表达式生成一个列表,这是一个非
常方便紧凑地定义列表的方式,可以大大减少代码量。
# 将一个可迭代的对象展开,形成一个列表
[i for i in range(5)]
# [0, 1, 2, 3, 4]
# 可以将结果进行处理
['第'+str(i) for i in range(5)]
# ['第0', '第1', '第2', '第3', '第4']
# 可以进行条件筛选,实现取偶数
[i for i in range(5) if i%2==0]
# 拆开字符,过滤空格,全变成大写
[i.upper() for i in 'Hello world' if i != ' ']
# ['H', 'E', 'L', 'L', 'O', 'W', 'O', 'R', 'L', 'D']

 

元组(tuple)跟列表(list)非常相似,二者之间的差异是元组不
可改变,而列表是可以改变的。元组使用圆括号(),列表使用方括号
[]。
元组的索引机制跟列表完全一样。元组是不可修改的,我们修改元
素时,就会报错,但是我们可以修改混杂类型里的列表类型数据。
另外,我们需要掌握元组的解包操作,这些操作可以让我们灵活地
赋值、定义函数、传参,非常方便。
x = (1,2,3,4,5)
a, *b = x # a占第一个,剩余的组成列表全给b
# a -> 1
# b -> [2, 3, 4, 5]
# a, b -> (1, [2, 3, 4, 5])
a, *b, c = x # a占第一个,c占最后一个,剩余的组成列表全给b
# a -> 1
# b -> [2, 3, 4]
# c -> 5
# a, b, c -> (1, [2, 3, 4], 5)

 

字典是Python重要的数据结构,由键值对组成。在客观世界中,所
有的事件都有它的属性和属性对应的值,比如某种花的颜色是红色,有
5个花瓣。其中颜色和花瓣数量是属性,红色和5是值。我们用属性
(key)和值(value)组成“键值对”(key-value)这样的数据结构。它
可以用以下方法定义:
d = {} # 定义空字典
d = dict() # 定义空字典
d = {'a': 1, 'b': 2, 'c': 3}
d = {'a': 1, 'a': 1, 'a': 1} # {'a': 1} key不能重复,重复时取最后一个
d = {'a': 1, 'b': {'x': 3}} # 嵌套字典
d = {'a': [1,2,3], 'b': [4,5,6]} # 嵌套列表
# 以下均可定义如下结果
# {'name': 'Tom', 'age': 18, 'height': 180}
d = dict(name='Tom', age=18, height=180)
d = dict([('name', 'Tom'), ('age', 18), ('height', 180)])
d = dict(zip(['name', 'age', 'height'], ['Tom', 18, 180]))
访问字典的方法如下:
d['name'] # 'Tom'(获取键的值)
d['age'] = 20 # 将age的值更新为20
d['Female'] = 'man' # 增加属性
d.get('height', 180) # 180
# 嵌套取值
d = {'a': {'name': 'Tom', 'age':18}, 'b': [4,5,6]}
d['b'][1] # 5
d['a']['age'] # 18
常用的字典操作方法如下:
d.pop('name') # 'Tom'(删除指定key)
d.popitem() # 随机删除某一项
del d['name'] # 删除键值对
d.clear() # 清空字典
# 按类型访问,可迭代
d.keys() # 列出所有键
d.values() # 列出所有值
d.items() # 列出所有键值对元组(k, v)
# 操作
d.setdefault('a', 3) # 插入一个键并给定默认值3,如不指定,则为None
d1.update(dict2) # 将字典dict2的键值对添加到字典dict
# 如果键存在,则返回其对应值;如果键不在字典中,则返回默认值
d.get('math', 100) # 100
d2 = d.copy() # 深拷贝,d变化不影响d2
d = {'a': 1, 'b': 2, 'c': 3}
max(d) # 'c'(最大的键)
min(d) # 'a'(最小的键)
len(d) # 3(字典的长度)
str(d) # "{'a': 1, 'b': 2, 'c': 3}"(字符串形式)
any(d) # True(只要一个键为True)
all(d) # True(所有键都为True)
sorted(d) # ['a', 'b', 'c'](所有键的列表排序)
2.2.7 集合
集合(set)是存放无顺序、无索引内容的容器。在Python中,集合
用花括号{}表示。我们用集合可以消除重复的元素,也可以用它作交、
差、并、补等数学运算。以下是它的定义方法:
s = {} # 空集合
s = {'5元', '10元', '20元'} # 定义集合
s = set() # 空集合
s = set([1,2,3,4,5]) # {1, 2, 3, 4, 5}(使用列表定义)
s = {1, True, 'a'}
s = {1, 1, 1} # {1}(去重)
type(s) # set(类型检测)
集合没有顺序,没有索引,所以无法指定位置去访问,但可以用for
遍历的方式进行读取。以下是一些常用的操作:
s = {'a', 'b', 'c'}
# 判断是否有某个元素
'a' in s # True
# 添加元素
s.add(2) # {2, 'a', 'b', 'c'}
s.update([1,3,4]) # {1, 2, 3, 4, 'a', 'b', 'c'}
# 删除和清空元素
s.remove('a') # {'b', 'c'}(删除不存在的会报错)
s.discard('3') # 删除一个元素,无则忽略,不报错
s.clear() # set()(清空)
集合的数学运算如下:
s1 = {1,2,3}
s2 = {2,3,4}
s1 & s2 # {2, 3}(交集)
s1.intersection(s2) # {2, 3}(交集)
s1.intersection_update(s2) # {2, 3}(交集,会覆盖s1)
s1 | s2 # {1, 2, 3, 4}(并集)
s1.union(s2) # {1, 2, 3, 4}(并集)
s1.difference(s2) # {1}(差集)
s1.difference_update(s2) # {1}(差集,会覆盖s1)
s1.symmetric_difference(s2) # {1, 4}(交集之外)
s1.isdisjoint(s2) # False(是否没有交集)
s1.issubset(s2) # False (s1是否是s2的子集)
s1.issuperset(s2) # False(s1是否是s2的超集,即s1是否包含s2中的所有元素

 

标签:python,s2,s1,列表,运算符,索引,var,元组
From: https://www.cnblogs.com/xkdn/p/17937189

相关文章

  • 【python爬虫课程设计】大数据分析——有多少人花时间通过身体测量来思考自己的健康状
    一、选题背景介绍在现代快节奏的生活中,越来越多的人开始关注自己的健康状况,并采取积极的措施来改善和维持健康。体重是一个重要的身体指标,对于评估健康状况和制定健康计划具有重要意义。通过定期测量体重,人们可以了解自己的体重变化趋势,并将其与健康目标相比较。体重的增加或减......
  • Python解析命令行参数
    Python解析命令行参数获取命令行参数在Python中命令行参数通过sys.argv传递,它是一个list类型,其中的元素为字符串。importsysdefcli_parser():print(f"参数个数:{len(sys.argv)}")print(f"参数列表:{str(sys.argv)}")print(f"脚本名:{sys.argv[0]}")for......
  • linux部署Python UI自动化项目过程
    1.安装chrome浏览器下载访问谷歌中文网站:GoogleChrome网络浏览器。将页面滑到最下面,点击其他平台,在弹出的页面选择linux选择对应的系统版本进行下载。下载后的deb包默认是arm架构,rpm包默认是x86架构的。所以在选择的时候要对应的系统架构选择安装包,可以通过lscpu查看......
  • Python NumPy 生成随机数的方法及示例
    ​ NumPy是一个强大的库,用于数值计算,包括生成各种随机数。可以使用random.rand()、random.randn()、random.randint()、random.uniform()、random.normal()和random.seed()函数方法生成随机数。本文介绍生成随机数的方法,以及相关的示例代码。1、numpy.random.rand()numpy.ra......
  • Codeforces Round 918 (Div. 4) (前缀和,权值树状数组,二维偏序, python + golang)
    Dashboard-CodeforcesRound918(Div.4)-Codeforces  fromcollectionsimport*defsolve():a,b,c=list(map(int,input().split()))hs=defaultdict(int)hs[a]+=1hs[b]+=1hs[c]+=1foriinhs:ifhs[i]=......
  • 【Python爬虫课程设计】招聘网站数据分析与可视化
    一、选题背景随着互联网的快速发展和信息化时代的到来,招聘网站成为求职者和招聘公司之间最重要的信息交流平台之一。招聘网站上聚集了大量的职位信息、薪资数据和公司信息,这些数据蕴含着丰富的招聘市场和就业趋势的信息,对求职者和招聘公司都具有重要的参考价值。然而,由于招聘网站......
  • appium-python自动开启和关闭服务(win/mac)
    后台启动&关闭appiumserver的命令启动appium:appium-a127.0.0.1-p4723--logxxx.log--local-timezoneAppium服务命令行参数启动appium-p4723指定端口--logxxx.log指定日志保存到指定文件内(可以是绝对路径)--local-timezone指定时间为本地时间--log-levelerror......
  • Python+自动化测试生成HTML报告
    ......
  • Python教程(18)——python文件操作详解
    所谓的文件操作是指对计算机中的文件进行读取、写入、修改和删除等操作。简单来说可以分为以下三个部分:打开文件操作文件关闭文件就是这三个简简单单的操作,却在计算机世界占有一席之地。打开文件有各种打开模式,各不相同;操作文件,有读写模式;关闭文件就比较简单了。Python文......
  • 大数据分析与可视化 之 实验01 Python爬虫
    实验01Python爬虫实验学时:2学时实验类型:验证实验要求:必修一、实验目的理解爬虫技术掌握正则表达式、网络编程掌握re、socket、urllib、requests、lxml模块及其函数的使用二、实验要求 分析所需爬取信息网页的源代码,使用re、socket、urllib、requests、lxml模块及其函......