Python的数据类型

84 阅读5分钟
  • String(字符串)
  • Numbers(数字)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

String

type函数判断数据类型(type(字符串) => <class 'str'>)

Numbers

  • int
  • float
  • long(在Python3中被删除了,超出int的长度,会自动转化为Long)
  • complex(复数)

type函数判断数据类型(type(数字) => <class 'int/float'>)

intlongfloatcomplex
1051924361L0.03.14j
100-0x19323L15.2045.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])

其他待续