Python基础2 字符串、列表、字典、集合等操作

列表、元祖操作

列表

语法:

name = [‘jack‘, ‘tom‘, ‘bob‘]

列表切片

列表切片的特点是“顾头不顾尾”

>>> name = [‘jack‘, ‘tom‘, ‘bob‘]
>>> name[:]
[‘jack‘, ‘tom‘, ‘bob‘]
>>> name[1:]
[‘tom‘, ‘bob‘]
>>> name[1:2]
[‘tom‘]
>>> name[:-1]
[‘jack‘, ‘tom‘]
>>> name[::2]
[‘jack‘, ‘bob‘]
>>> name[0::2]
[‘jack‘, ‘bob‘]
>>> name[1::2]
[‘tom‘]

追加

>>> name
[‘jack‘, ‘tom‘, ‘bob‘]
>>> name.append(‘ann‘)
>>> name
[‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘]

插入

>>> name
[‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘]
>>> name.insert(0, ‘alex‘)
>>> name
[‘alex‘, ‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘]

修改

>>> name
[‘alex‘, ‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘]
>>> name[0] = ‘xiaoming‘
>>> name
[‘xiaoming‘, ‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘]

删除

# pop删除,以索引删,默认不填写索引删除列表最后一个元素
>>> name
[‘xiaoming‘, ‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘]
>>> name.pop()
‘ann‘
>>> name
[‘xiaoming‘, ‘jack‘, ‘tom‘, ‘bob‘]
>>> name.pop(-1)
‘bob‘
>>> name.pop(0)
‘xiaoming‘
>>> name
[‘jack‘, ‘tom‘]

# remove删除,以字符串删
>>> name.remove(‘tom‘)
>>> name
[‘jack‘]

# del删除
>>> name
[‘jack‘]
>>> del name[0]
>>> name
[]

扩展

>>> l1 = [1,2,3]
>>> l2 = [4,5]
>>> l1.extend(l2)
>>> l1
[1, 2, 3, 4, 5]

拷贝

>>> l2 = l1.copy()
>>> l2
[1, 2, 3, 4, 5]

统计

>>> l1
[1, 2, 3, 4, 5]
>>> l1.count(1)
1

排序和反转

# 排序,Python3中不同数据类型不能一起排序
>>> l = [3,2,1,4,7,0]
>>> l.sort()
>>> l
[0, 1, 2, 3, 4, 7]

# 反转
>>> l
[0, 1, 2, 3, 4, 7]
>>> l.reverse()
>>> l
[7, 4, 3, 2, 1, 0]

获取索引

>>> l
[7, 4, 3, 2, 1, 0]
>>> l.index(3)
2

元祖

元祖又称为可读的列表,一但创建不能修改,它只有2个方法,一个是count,一个是index

语法:

name = (‘jack‘, ‘tom‘)


字符串操作

特性不可修改

print(name.capitalize())        # 首字母大写
print(name.count("a"))          # 计算某个字符在字符串中出现的次数
print(name.center(50, "-"))     # 居中打印
print(name.encode(‘utf-8‘))     # 字符串转换成bytes类型
print(name.endswith("en"))      # 判断字符串以什么结尾
print(name.expandtabs())        # 将tab转多少个空格
print(name.find(‘c‘))           # 从左侧查找索引
print(name.rfind(‘c‘))           # 从右侧查找索引
print("abc123".isalnum())       # 是否为数字和字母
print("abc".isalpha())          # 是否为数字
print("1".isdecimal())          # 是否为十进制
print("123".isdigit())          # 是否为整数
print("12a".isidentifier())     # 是否为合法的变量名
print("abc".islower())          # 是否为小写
print("abc".isupper())          # 是否为大写
print("123".isnumeric())        # 是否只有数字
print(" ".isspace())            # 是否为空格
print("My Name Is".istitle())   # 是否每个首字母都大写
print("My Name Is".isprintable())   # 是否能打印
print("+".join("abc"))          # 拼接字符串
print(name.ljust(50, "*"))      # 长度不到50,后面用*号补齐
print(name.rjust(50, "*"))      # 长度不到50,前面用*号补齐
print("ALEX".lower())           # 变小写
print("alex".upper())           # 变大写
print(" jack  ".lstrip())       # 去掉开头空格
print(" jack  ".rstrip())       # 去掉结尾空格
print(" jack  ".strip())        # 去掉开头和结尾空格
print("jaaaiachen".replace("a", "x", 1))   # 字符串替换
print("abcde".split("a"))       # 分割成列表
print("1+2\n+3+4".splitlines()) # 以换行符分割成列表
print("Jack".swapcase())        # 反转大小写
print("abc".title())            # 变成一个title
print("abc".zfill(50))          # 不够前面补零

字典操作

字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。

语法:

d = {
    ‘k1‘: ‘v1‘,
    ‘k2‘: ‘v2‘,
}

字典的特性:

dict是无序的

key必须是唯一的,so 天生去重

增加

>>> d = {‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘}
>>> d
{‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘}
>>> d[‘k3‘] = ‘v3‘
>>> d
{‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘}

修改

>>> d
{‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘}
>>> d[‘k1‘] = ‘v11111‘
>>> d
{‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘}

删除

# pop删除
>>> d
{‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘}
>>> d.pop(‘k3‘)
‘v3‘
>>> d
{‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘}

# del删除
>>> d
{‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘}
>>> del d[‘k3‘]
>>> d
{‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘}

# 随机删除
>>> d
{‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘}
>>> d.popitem()
(‘k2‘, ‘v2‘)
>>> d
{‘k1‘: ‘v11111‘}

查找

>>> d
{‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘}

# 查看k1是否在字典d中,存在为True,不存在为False
>>> ‘k1‘ in d
True

# get方式取k1如果有则取到值,没有则设置为None
>>> d.get(‘k1‘, None)
‘v1‘
>>> d.get(‘xxx‘, None)

# 直接取值,k1不存在则报错
>>> d[‘k1‘]
‘v1‘

其他

>>> d
{‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘}
>>> d.keys()
dict_keys([‘k3‘, ‘k2‘, ‘k1‘])
>>> d.values()
dict_values([‘v3‘, ‘v2‘, ‘v1‘])
>>> d.items()
dict_items([(‘k3‘, ‘v3‘), (‘k2‘, ‘v2‘), (‘k1‘, ‘v1‘)])

# 循环字典方式1
for k in d:
    print(k, d[k])

# 循环字典方式2
for k, v in d.items():
    print(k, v)

# 方式1好于方式2,原因一目了然,上面的d.items()是将字典先转换为列表,这样如果字典较大的话,会很慢

集合操作

集合是一个无序的,不重复的数据组合,它的主要作用如下:

去重,把一个列表变成集合,就自动去重了

关系测试,测试两组数据之前的交集、差集、并集等关系

list_1 = [1,4,5,7,3,6,7,9]
list_1 = set(list_1)

list_2 = set([2,6,0,66,22,8,4])
print (list_1,list_2)
‘‘‘
#求交集
print (list_1.intersection(list_2))
#求并集
print (list_1.union(list_2))
#求差集,1里面有2里面没有
print (list_1.difference(list_2))
#求子集,1是2的子集
print (list_1.issubset(list_2))
#求父集,1是2的父集
print (list_1.issuperset(list_2))
#求对称差集,两个互相没有的,去掉重复的
print (list_1.symmetric_difference(list_2))
#判断是否有交集,有为false,无为true
print (list_1.isdisjoint(list_2))
‘‘‘

#交集
print (list_1 & list_2)
#并集
print (list_1 | list_2)
#差集
print (list_1 - list_2)
#对称差集
print (list_1 ^ list_2)

#添加
list_1.add(999)
list_1.update([222,223,224])
#删除
list_1.remove(999)  #不存在报错
list_1.discard(888) #不存在不报错
#长度
len(list_1)
#测试x是否是a的成员
999 in list_1
#测试x是否不是a的成员
999 not in list_1
时间: 2024-11-02 14:19:14

Python基础2 字符串、列表、字典、集合等操作的相关文章

python中的字符串 列表 字典

字符串     一个有序的字符集合  不可变 1,可以使用for in语句进行迭代循环,返回元素    2,in类是于str.find()方法但是是返回布尔结果        str.find()返回的是位置操作    查找字符串:        find 找不到返回-1        rfind    从右边        index    报错      都是从左边开始查找        rindex   从右边    统计字符串个数        count    替换字符串       

python基础一 -------如何在列表字典集合中根据条件筛选数据

如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) 1 filter(lambda x:x>0,data) 3,列表推倒式 4,效率对比:还是列表推导式稍高 二:字典 1,跟列表类似,推导式 先生成随机的字典(key从1-20) 过滤掉value是负数的值 三:集合 随机生成10个元素的集合 过滤掉小于0的元素,跟字典类似

Python基础语法—字符串&语句&集合

Python字符串 Python中不支持char单字符类型,单字符在Python中也是一个字符串 Python字符串更新 更新Python字符串方法 1234 var1 = 'Hello World!'print "Updated String :- ", var1[:6] + 'Python' 实际执行效果为 Updated String :- Hello Python Python转义字符 Python字符串运算符 Python字符串格式化 Python三引号(triple quo

python :列表 字典 集合 类 ----局部变量可以改全局变量

#列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def func(names): names[0]='金角大王' print("inside name:" ,names) func(names) print (names) #字符串 name='jack' name1=name name='jack_chen' print(name,name1

python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding:utf-8from com.wenhy.crawler_baidu_baike import url_manager, html_downloader, html_parser, html_outputer print "爬虫百度百科调度入口" # 创建爬虫类class SpiderMai

python-数据类型,元祖,列表,字典,文件操作篇

python----数据类型,元祖,列表,字典,文件操作篇1.布尔类型:Ture False 非0即真 非空即真 空(None a=''空字符串) 条件判断返回的都是True或者False2.字符串: 注:字符串的所有操作,不改变原字符串值 常用的操作方法 .count() .find() #回不存在的元素,返回-1 .join() .encode() .decode()#bytes类型才有的(bytes:二进制类型) .endswith('.txt')#字符串是否以xx结尾 startswit

python基础10 字符串操作,字典操作,集合操作

本节内容: 字符串操作 字典操作 集合操作 字符串操作 概述 字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等.请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符. 如果字符串本身包含'怎么办?比如我们要表示字符串 I'm OK ,这时,可以用" "括起来表示: "I'm OK" 类似的,如果字符串包含",我们就可以用'

python基础知识之列表、元祖、字典/字符串。

基础知识之列表: 列表用 [  ]来定义是可变的,可以通过索引值来去查询里面的字段可以可以追加,删除. 常用用法如下 names = ['zhang', 'zhuang', ['alx', 'bob'], 'chen', 'qiang'] print(len(names)) # 获取列表长度 print("aaffaa".count("a")) # 获取a在字符串出现的次数 print(names[1:3]) # 切片 print(names[-1]) # 获取最后

python学习列表字符串字典集合文件操作字符串编码与转换

一.列表 1 names = "ZhangYang GuYun XiangPeng XuLiangchen" 2 names = ["ZhangYang", "GuYun", "XiangPeng", "ChengRongHua","XuLiangchen"] 3 names.append("LeiHaiDong") #在列表最后追加一个元素 4 names.inse