- String(字符串)
- Numbers(数字)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
String
type函数判断数据类型(type(字符串) => <class 'str'>)
Numbers
- int
- float
- long(在Python3中被删除了,超出int的长度,会自动转化为Long)
- complex(复数)
type函数判断数据类型(type(数字) => <class 'int/float'>)
| int | long | float | complex |
|---|---|---|---|
| 10 | 51924361L | 0.0 | 3.14j |
| 100 | -0x19323L | 15.20 | 45.j |
数据容器
list
其中元素是不限制数据类型的, 是可修改的
# 定义方式
[元素,元素,....]
使用举例如下:
list_student = ['小明','小白',[1,2,3]]
print(list_student)
print(type(list_student))
print(f'第一个学生的名字叫:{list_student[0]}') # 下标访问list项
print(f'最后一个学生的名字叫:{list_student[-1]}') # 下标访问list项
list_student[0] = '我是被修改名字的小明2' # 利用下标修改项
stu_index = list_student.index('小白') # index方法根据list项查找下标
print(f"找到了小白的下标是:{stu_index}")
list_student.insert(1, '小薇') # insert方法在指定位置插入元素
list_student.append('小六子') # append方法追加一个元素
list_student.extend(['小八', '小九']) # extend方法追加一批元素
del list_student[0] # del方法删除指定元素
pop_ele = list_student.pop(0) # pop方法删除指定元素
print(f"使用pop删除了元素{pop_ele}")
list_student.append('小九')
list_student.remove('小九') # remove方法删除从前到后,第一个匹配的元素
list_student.append('小八')
print(f"list_student中的小八的数量有{list_student.count('小八')}个") # count统计匹配元素的数量
print(f"list_student的长度:{len(list_student)}") # len方法统计list的长度
print(f"现在新的list_student是:{list_student}")
tuple
元素不限制数据类型的,一旦定义则是不可修改的(元素如果是引用类型的话,是可以修改的),其他方法跟list相同
# 定义方式
(元素,元素,....)
使用举例如下:
t1 = tuple([1, 2, 3, 2, 2])
t2 = ("小10",)
print(type(t1), t1)
print(type(t2), t2)
t_idx = t1.index(1)
print(f"1的下标是:{t_idx}") # index方法获取元素的下标
t_count = t1.count(2)
print(f"2出现的次数: {t_count}") # count方法获取元素出现的次数
t_len = len(t1)
print(f"t1的长度是:{t_len}") # len方法获得tuple的长度
"""
"""
my_str = "111 I'm Chinese, and you? 122"
print(my_str)
my_str2 = my_str.replace('and', '但是') # replace方法替换匹配的字符串,但是不会改变原字符串
print(f'执行了replace后,my_str:{my_str}'
f'\nmy_str2:{my_str2}')
my_split_list = my_str.split(' ') # split方法拆分字符串为list
print(f"以空格执行了split后:{my_split_list},类型是:{type(my_split_list)}")
my_strip_str = my_str.strip('12') # strip方法去除收尾字符,不传参默认去除收尾空格
print(f"执行了strip后,新的str: {my_strip_str}")
string
类似list,但是具备字符串特定的方法, 是只读的
使用举例如下:
my_str = "111 I'm Chinese, and you? 122"
print(my_str)
my_str2 = my_str.replace('and', '但是') # replace方法替换匹配的字符串,但是不会改变原字符串
print(f'执行了replace后,my_str:{my_str}'
f'\nmy_str2:{my_str2}')
my_split_list = my_str.split(' ') # split方法拆分字符串为list
print(f"以空格执行了split后:{my_split_list},类型是:{type(my_split_list)}")
my_strip_str = my_str.strip('12') # strip方法去除收尾字符,不传参默认去除收尾空格
print(f"执行了strip后,新的str: {my_strip_str}")
集合
内部元素不重复,且是无序的, 是允许修改的
# 定义如下
{元素,元素....}
使用举例如下:
my_set = {'万过薪月', '黑来', 'Python', '万过薪月', '黑来', 'Python', '万过薪月', '黑来', 'Python'}
my_set_empty = set()
print(f"my_set的实际是: {my_set}")
my_set.add('哈哈哈') # add方法新增
print(f"add后,my_set: {my_set}")
my_set.remove('Python') # remove方法删除指定元素
print(f"remove后,my_set: {my_set}")
random_ele = my_set.pop() # pop方法随机取出一个元素
print(f"pop后,my_set: {my_set}")
my_set.add('万过薪月')
print(f"my_set: {my_set}")
my_set2 = {'万过薪月', '和和IEhi', '嘿嘿哈哈或或或或或'}
print(f"my_set2: {my_set2}")
new_difference_set = my_set.difference(my_set2) # difference方法取my_set和my_set2的差集(即my_set中有,但是my_set2中没有的),不改变原集合
print(f"difference后,new_difference_set: {new_difference_set}")
my_set.difference_update(my_set2) # difference_update方法删除my_set和my_set2中的相同元素,并更新my_set
print(f"difference_update后,my_set: {my_set}")
my_set_set2 = my_set.union(my_set2) # union方法联合2个集合,产生了新的集合
print(f"union后,my_set_set2: {my_set_set2}")
字典
dict, key不可重复,存储键值对,非常类似JavaScript的对象
# 定义如下:
{key:value, key:value....}
使用举例如下:
my_dict = {'小名': {"数学": 100, "语文": 90}, '小hong': {"数学": 10, "语文": 9}}
print(type(my_dict), my_dict)
print(my_dict['小hong']['语文'])
my_dict2 = {'周杰伦': 10, '林觉接': 120, '萨达姆': 80}
# 新增,修改
my_dict2['拜登'] = 9
my_dict2['周杰伦'] = 80
print(my_dict2)
pop_ele = my_dict2.pop('林觉接')
print(f'删除了{pop_ele}')
print(my_dict2)
序列以及序列的切片
序列: 内容连续,有序,支持使用下标索引的一类数据容器(例如list,tuple,string)
序列的切片: 序列起始:结束:步长
序列[起始:结束:步长]
使用举例如下:
# 获得“黑马程序员”字符串
my_str = "万过薪月,员序程马黑来,nohtyP学"
print(my_str[9:4:-1])
print(my_str[5:10:][::-1])
my_str_split = my_str.split(',')[1].replace('来', '')
print(my_str_split[::-1])