列表(list)
特点:可以被修改
列表的定义
定义空列表:
变量名 = [] 或 变量名 = list()
定义变量:
变量名 = [元素1,元素2,元素3,... ]
取出列表元素
列表名 [下标索引]
从前向后,从0开始;从后向前,从-1开始
嵌套列表:
列表的常用操作
增
列表.append(元素)
向列表追加一元素
列表.extend(容器)
将数据容器的内容依次取出,追加到列表尾部
列表.insert(下标,元素)
在指定下标处,插入指定元素
删
del 列表[下标]
删除列表指定下标元素
列表.pop(下标)
删除列表指定下标元素;还能把删掉的元素作为返回值得到
列表.remove(元素)
从前向后,删此元素第一个匹配项
列表.clear()
清空列表
统计
列表.count(元素)
统计此元素在列表中出现的次数
len(列表)
统计容器内有多少元素
查
列表.index(元素)
查找指定元素在列表的下标
列表的遍历
while
for ------ 只是将容器里面的内容挨个取出
for ele in [1,2,3,4,5]:
print(f"列表中的元素有:{ele}")
元组(tuple)
特点:不可被篡改
元组的定义
定义空元组:
变量名 = () 或变量名 = tuple()
定义元组变量:
变量名 = (元素1,元素2,元素3,...)
🔺定义单个元素
t1 = ("hello",) //当元组只有一个数据时,这个数据后面要加,
取出元组元素
元组名 [下标索引]
嵌套元组:
python
my_tuple = ( (1 , 2 , 3 ) , (4 , 5 , 6) )
print(my_tuple[0][1])
my_list[0] = (1 , 2 , 3)
元组的常用操作
查
index()
查找某个数据,存在返回对应的下标
统计
count()
统计某个数据在当前元组出现的次数
len(元组)
统计元组内的元素个数
元组的遍历
while
for
for ele in (1,2,3,4,5):
print(f"元组的元素有:{ele}")
注意:元组的内容不可修改;但元组内的列表的内容可以修改t1 = (1, 2, ['itheima', 'itcast'] )
t1[2][1] = 'best'
>> (1, 2, ['itheima', 'best'] )
字符串(str)
不可修改
取出字符串特定位置的字符
从前向后,下标从0开始
从后向前,下标从-1开始
字符串的常用操作
查找
字符串.index(字符串)
查找特定字符串的下标索引值(返回该字符串在原字符串的起始下标)
替换
字符串.replace(字符串1,字符串2)
将字符串中,字符串1的全部内容替换为字符串2(得到的是一个新字符串,不是修改字符串本身)
分割
字符串.split(分隔符字符串)
按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中
python
my_str = "hello python itheima itcast"
new_my_str = my_str.split(" ")
print(new_my_str)
>> ['hello', 'python', 'itheima', 'itcast']
去除
去除字符串前后空格和换行符 ------ 字符串.strip()
python
my_str = " hello python itheima itcast "
print(my_str.strip())
去除字符串前后指定字符串 ------ 字符串.strip(字符串)
python
my_str = "12hello python itheima itcast21"
print(my_str.strip("12"))
按照单个字符串(划分两个小子串,满足任意一个就去掉),1,2都会被移除
统计
字符串.count(字符串)
统计字符串中某字符串的出现次数
len(字符串)
统计字符串的长度
字符串的遍历
while
for
for i in "黑马程序员":
print(i)
序列的切片
列表、元组、字符串均可视为序列;序列支持切片
语法:序列 [起始下标:结束下标(不含):步长]
步长为1:(一步一个)一个个取;步长为2:(一步两个)跳一个取;步长为N:跳N-1个取;
步长为负数:反向取(起始下标,结束下标也要反向标记)
1.my_tuple = (0,1,2,3,4,5,6)
print(my_tuple[:]) //起始和结束不写表示从头到尾;步长为1可以省略
>>(0,1,2,3,4,5,6)
2.my_str = "01234567"
print(my_str[::2])
>>0246
3.my_str = "01234567"
print(my_str[::-1]) //等同于将序列反转
>>76543210
序列切片的实践
python
my_str = "万过薪月,员序程马黑来,nohtyP学"
#1.倒序,切片取出
print(my_str[::-1][9:14])
#2.切片取出,再反转
print(my_str[5:10][::-1])
#3.split,分隔;来替换空(是空!);倒序字符串
print(my_str.split(",")[1].replace("来","")[::-1])
集合(set)
集合的定义
特点:无序,不支持下标索引访问,但允许修改;去重;
定义空集合:
变量名 = set()
定义集合变量:
变量名 = {元素1,元素2,元素3,...}
集合常用操作
添加新元素
集合.add(元素)
将指定元素,添加到集合内
移除元素
集合.remove(元素)
从集合中随机取出一个元素
集合.pop()
清空集合
集合.clear()
集合1中求集合2的补集
集合1.difference(集合2) //集合1有而集合2没有;集合1、集合2不变
python
set1={1,2,3}
set2={1,5,6}
print(set1.difference(set2))
>>{2,3}
消除两个集合交集
集合1.difference_update(集合2)//集合1内删和集合2相同的元素;集合1被修改;集合2不变
python
set1={1,2,3}
set2={1,5,6}
set1.difference_update(set2)
print(set1)
>> {2,3}
2个集合合并为1个集合
集合1.union(集合2)//将集合1和集合2组合成新集合
统计集合元素数量
len(集合)
集合的遍历
集合不支持下标索引,不能用while;得用for
for ele in {1,2,3,4,5}:
print(ele)
字典(dict)
特点:字典不允许key的重复;新的会把老的覆盖掉
字典的定义
定义空字典:
my_dict = {}或 my_dict = dict()
定义字典变量:
my_dict = { key : value, key : value , ... , key : value }
字典数据的获取
通过key取对应的value
字典的嵌套
用字典记录学生各科的考试信息
|-----|----|----|----|
| 姓名 | 语文 | 数学 | 英语 |
| 王力宏 | 77 | 66 | 33 |
| 周杰伦 | 88 | 86 | 55 |
| 林俊杰 | 99 | 96 | 66 |
python
my_dict = {
"王力宏" : {
"语文" : 77,
"数学" : 66,
"英语" : 33
},
"周杰伦" : {
"语文" : 88,
"数学" : 86,
"英语" : 55
},
"林俊杰" : {
"语文" : 99,
"数学" : 96,
"英语" : 66
}
}
看周杰伦的语文信息 ------ my_dict["周杰伦"]["语文"]
字典的常用操作
新增和更新
字典[key] = value
对不存在的key执行这个操作,是新增;对已存在的key执行这个操作,是更新value值
删除元素
字典.pop(key)
返回指定key的value
清空字典
字典.clear()
获取全部key
字典.keys()
得到字典中的全部key
统计字典内元素数量
len(字典)
len(my_dict)