字符串、列表、元组、字典、集合
String(字符串)
word = '字符串'
sentence= "句子"
paragraph = """
这是一个段落
可以由多行组成
"""
print(word)
print(sentence)
print(paragraph)
双引号和单引号的区别
①单引号有时需要转义字符(\)
my_str = "I'm a student"
my_str = 'I\'m a student'
②
my_str = "Jason said \"I like you\""
my_str = 'Jason said "I like you"'
str = "chengdu"
print(str)
print(str[0])
print(str[0:5])
print(str[1:7:2]) #左闭右开
print(str[5:])
print(str[:5])
print(str + ",你好")
print(str * 3)
print("hello\nworld") #使用反斜杠,实现转义
print(r"hello\nworld") #原始字符直接打印输出
字符串常见操作
①
bytes.decode(encoding="utf-8",errors="strict")
Python3中没有decode方法,但我们可以使用bytes对象的decode()方法来解码给定的bytes对象,这个bytes对象可以由str.encode()来编码返回。
②
encode(encoding='UTF-8',errors='strict')
以encoding指定的编码格式编码字符串,如果出错默认报一个ValueError的异常,除非errors指定的是’ignore’或者’replace’
③
isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False
isalpaha() 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False
isnumeric() 如果字符串中只包含数字字符则返回True,否则返回False
④
join(seq)以指定字符串作为分隔符,将seq中所有的元素(字符串表示)合并为一个新的字符串
⑤
len(string) 返回字符串长度
⑥
lstrip()截掉字符串左边的空格或指定字符
⑦
rstrip()截掉字符串末尾的空格
⑧
split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔成 num+1 个子字符串
List(列表)
特点
- 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)
- 写在[ ]之间,逗号分割
- 索引值以0为开始值,-1为从末尾的开始位置
- 列表可以使用+操作符进行拼接,使用*表示重复
testlist = [1,"王","张"] # 列表中可以存储混合类型
print(type(testlist[0]))
print(type(testlist[1]))
print(testlist[0]) # run <class 'int'>
print(testlist[1]) # run <class 'str'>
print(testlist[2])
for i in testlist:
print(i)
print(len(testlist))
#使用枚举函数enumerate(list)
mylist = ["a","b","c"]
for i,x in enumerate(mylist):
print(i,x) #0 a 1 b 2 c
列表常用操作
操作名称 | 操作方法 | 举例 |
---|---|---|
访问列表中的元素 | 通过下表直接访问 | print(list[0]) |
列表的切片 | 使用[: :] | list1[2:5:2] |
遍历 | for | for i in list1 :print(i) |
【增】新增数据到列表尾部(其类型不变) | append | list1,append(5) |
【增】列表的追加(将列表拆分后逐一追加) | extend | list1.extend(list2) |
【增】指定下标位置出入元素 | insert | list.insert(1,3) |
【删】 删除指定位置元素 | del | del list1[2] |
【删】 删除列表 | del | del list1 |
清空列表 | clear | list1.clear |
【删】弹出最后一个元素 | pop | list1.pop() |
【删】删除指定内容元素 (只删除找到的第一个) | remove | namelist.remove(“李”) |
【改】 | namelist[1] =“小红” | |
【查】 | if name in namelist:print(“找到了”) | |
【查】在索引i到j之间是否存在,存在返回索引 (左闭右开,只查找第一个) | index | a.index(“a”,1,4) |
统计 | count | list1.count(“li”) |
列表元素反转 | reverse | list1.reverse() |
排序 | sort() | 正序:list1.sort() 降序:list1.sort(reserse=True) |
Tuple(元组)
特点
- tuple与list类似,不同之处在于tuple的元素不能修改。tuple写在小括号里,元素之间逗号隔开。
- 元组的元素不可变,但可以包含可变对象,如list。
类型变化
tup1 = () #创建空的元组
print(type(tup1)) #<class 'tuple'>
tup2 = (50)
print(type(tup2)) #<class 'int'>
tup3 = (50,)
print(type(tup3)) #<class 'tuple'>
tup1 = ("abc","def",2000,2020)
print(tup1[0])
print(tup1[-1]) #访问最后一个元素
print(tup1[1:5]) #左闭右开,进行切片
操作
操作 名称 | 操作方法 | 举例 |
---|---|---|
【增】连接 | + | tup = tup1 + tup2 |
【删】删除整个变量 | del | del tup |
【改】不能修改 |
#增 (连接)
tup1 = (12,34,56)
tup2 = ("abc","xyz")
tup = tup1 + tup2
print(tup) #(12, 34, 56, 'abc', 'xyz')
#删 (删除整个元组变量)
tup1 = (12,34,56)
print(tup1)
del tup1
print(tup1) # NameError: name 'tup1' is not defined
#改 (不能修改)
tup1 = (12,34,56)
tup1[0] = 1000 # 报错TypeError: 'tuple' object does not support item assignment
dict(字典)
特点
- 字典是无序的对象集合,使用键-值(key-value)存储,具有极快的查找速度。
- 键(key)必须使用不可变类型。
- 同一个字典中,键(key)必须唯一。
- 中括号 冒号表示
#字典定义
info = {'name':'吴彦祖','age':18}
#字典访问
print(info['name'])
print(info['age'])
'''
#直接访问不存在的键
print(info['gender']) # 报错
'''
#使用get方法没有对应的键,默认返回None
print(info.get("gender"))
#没找到get方法,可以设置默认值
print(info.get("gender","m"))
print(info.get("name","li")) #找到了则无效
操作
操作 名称 | 操作方法 | 举例 |
---|---|---|
【增】删除的一个键值对或删除某个字典 | del | del info[‘name’] del info |
【删】清空整个字典 | clear | info[‘name’].clear() |
【查】不能修改 | info.keys() info.values() info.items() |
#增
info = {'name':'吴彦祖','age':18}
gender = input("请输入性别:")
info["gender"] = gender
print(info['gender'])
#删
#【del】 删除的是一个键值对或删除某个字典
info = {'name':'吴彦祖','age':18}
print("删除前:%s"%info['name'])
del info['name']
print("删除后:%s"%info['name']) #报错
del info
#【clear】 清空整个字典,删除某个键值对用del
info = {'name':'吴彦祖','age':18}
info['name'].clear()
print(info)
# 查
info = {'name':'吴彦祖','age':18}
print(info.keys()) #得到所有的键(列表)dict_keys(['name', 'age'])
print(info.values()) #得到所有的值(列表)dict_values(['吴彦祖', 18])
print(info.items()) #得到所有的项(列表),每个键值对是一个元组
#dict_items([('name', '吴彦祖'), ('age', 18)])
#遍历所有的键
info = {'name':'吴彦祖','age':18}
for key in info.keys():
print(key)
#遍历所有的值
#遍历所有的键值对
for key,value in info.items():
print("key=%s,value=%s"%(key,value))
#使用枚举函数enumerate(list)
mylist = ["a","b","c"]
for i,x in enumerate(mylist):
print(i,x)
操作 | 名称 | 举例 |
---|---|---|
合并字典 | update | info1.update(info2) |
info1 = {'name':'吴彦祖','age':18}
info2 = {'gender':'m'}
# in 判读key是否存在 返回True或False
print('name' in info1)
# update() 合并字典
info1.update(info2)
print(info1)
# pop()方法 字典元素弹出
print(info1.pop('name'))
set(集合)
特点
- 不能重复,重复元素在set中自动被过滤,可以用来去重操作
- 无序
- 大括号{}
总结