Python基本数据类型一般分为:数字、字符串、列表、元组、字典、集合这六种基本数据类型。
- 不可变(3 个):Number(数字)、String(字符串)、Tuple(元组);
- 可变(3 个):List(列表)、Dictionary(字典)、Set(集合)
数字
Python3 支持 int、float、bool、complex(Python 3只有一种整数类型 int,表示为长整型,没有 python2 中的 Long)
a
数字的运算在‘基础认识’部分有介绍,这里不在过多描述。
String-字符串
字符串通常是由单引号或者双引号来标识的,字符串是由独立的字符组成的,且可通过切片操作顺序地访问。
str1 = 'hello'
str2 = 'python'
字符串拼接
str1 + str2
切片、索引
str1[1]
str2[1:3]
大小写转换
str1.lower()
str2.upper()
判断是以X开头/结尾
str1.startswith('he')
str2.endswith('lo')
分割字符串
str3 = "I am a good boy!"
str3.split(" ") # 采用空格进行分割
['I', 'am', 'a', 'good', 'boy!']
str3.split(" ", 3) # 采用空格进行分割,并且只分割前3个
['I', 'am', 'a', 'good boy!']
计数
str3.count('o') # 3
查找字符串
str1.find('lo') # str.find(substr,start,end) 查找指定字符串,查到返回位置索引,找不到返回-1
str2.index('lo') # 与find一样,但是查不到会报异常,ValueError:substring is not found
去除字符串中的空格和特殊字符
str1.strip([chars]) :去除字符串前后(左右侧)的空格或特殊字符
str2.lstrip([chars]):去除字符串前面(左侧)的空格或特殊字符
str3.rstrip([chars]):去除字符串后面(右侧)的空格或特殊字符
替换
str1.replace('you','her') # 把you替换为her
连接字符串
s='_'
li=['L','O','V','E']
s.join(li) # 'L_O_V_E'
List-列表
列表是python中非常重要的数据对象,[]来表示和创建,里面元素可以是int型、string型,或者混合型,甚至是另一个列表。列表是长度可变的有序表,元素可重复。
创建列表
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
访问列表
list2[1:5]
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
len
增添(append、insert、extend)
# append 一般在后面追加一个元素
language=['c','c#','java','python']
language.append('R') # 插入一个元素
# extend 一般增加一个列表
language.extend(['go','R']) # 插入一个列表
# insert指定位置插入
language.insert(1,'R')
language.insert(2,['go','sql'])
删除(pop、remove、del)
# pop 列表尾部删除元素、或者指定索引位置删除元素,并返回删除值
s1=language.pop()
s2=language.pop(1)
# del 指定索引位置删除元素
del language[1]
# remove 删除列表中特定元素
language.remove('java')
# clear方法清空列表元素
language.clear()# 注意:如果是从A列表删除B列表的元素,可以借助in和remove循环删除。
修改
# 修改,先找到元素的位置索引,然后再用赋值就可以了
language=['c','c#','java','python']
language[2]='R'
查询
# 索引查看、循环输出、切片查看
language[1]
language[1:3]
for l in language:print(l)# 包含 in ,not in,index, count
'c' in language
'c' not in language
language.index('python') # Return first index of value.or ValueError:'python' is not in list
language.count('c') # 统计出现次数,不存在返回0# min、max
min(list2)
max(list2)
排序(sort排序、reserve逆序)
l1=[2,3,9,5,1,7,0]
l1.sort(reverse=True)
l1.reverse()l2 = l1[::-1] # 逆序
列表生成式
# 生成一个列表,元素是1~10的平方
# 法1 :循环生成
list3=[]
for i in range(1,11):list3.append(i**2)# 法2 :列表生成式 [表达式 for i in 序列]
[i**2 for i in range(1,11)]
[i*j for i in range(1,100) for j in range(1,i) if i>=j]
[x**2 for x in range(1,11) if x%3==0]
[m+n for m in 'ABC' for n in 'abc']
过滤列表
# 方式1:filter函数
num_list=[1, 2, 3, 4, 5, 6, 7, 8]
def filter_above3(num):return num>=3
# filter()接受的第一个参数是函数对象,第二个参数是可迭代的对象
filtered=filter(filter_above3, num_list)
filtered_list=list(filtered)# 方式2:列表生成式
filtered_list=[num for num in num_list if num>=3]
整体修改列表
# 方式1:map函数
def square(num):return num**2
# map()函数使得我们可以将某个函数应用到可迭代对象内每一个元素之上
squares=map(square, num_list)
squares_list=list(squares)# 方式2:列表生成式
squares_list=[num**2 for num in num_list]
组合列表
# zip()函数接收多个列表作为参数传入,进而得到每个位置上一一对应的元素组合
该篇文章主要讲了数字、字符串以及列表的相关操作,下节将继续记录后面三种数据类型。