python中的数据类型

  • 一、列表
  • 二、元组
  • 三、字符串
  • 四、字典
  • 五、集合
  • 六、总结
  • 七、参考链接


一、列表

  列表(list)是python内置的一种数据类型,它是一种有序的集合,可以随时添加和删除其中的元素。
   1.1 创建列表

name1 = list()    # 创建空列表
name2 = []        # 创建空列表
name3 = ['Bob', 'Jim', 'Linda']   # 创建并初始化列表
print(name3[0])   # 利用索引访问元素中的位置,索引从0开始
print(name3[-1])  # 倒序访问列表中的元素,表示取出列表中的最后一个元素

   1.2 列表相关操作

###################### 切片操作 ##############################
a = [1, 2, 3, 4, 'a']
print(a[0:len(a)])        # 正序索引, 切片步长默认为1
print(a[0:len(a):2])      # 步长为2,起始索引为0,则打印的下一个数据的索引为0+2=2, 再下一个数据索引为2+2=4

print(a[-1:-len(a)-1:-1]) # 输出['a', 4, 3, 2, 1]
print(a[::-1])            # 逆序输出['a', 4, 3, 2, 1]
print(a[-3:-1])           # 输出[3, 4]
###################### 增加元素 ##############################
a = [1, 2, 3]
b = [4, 5]    
a.append(b)         # 向列表a的末尾中添加元素b
a.extend(b)         # 向列表a中添加列表b
a.insert(1, [6, 7])      # 在索引为1的位置添加元素[6, 7]

###################### 修改元素 ##############################
a[1] = 10           # 根据列表的索引修改列表中的元素

###################### 查找元素 ##############################
10 in a             # 若为真,则返回True
10 not in a         # 若为真,则返回True
a.index('a', 1, 3)  # 在1~3的索引区间范围内查找'a',返回元素'a'所在列表的位置索引,查找区间左开右闭
a.count('a')        # 统计列表a中出现元素'a'的次数

###################### 删除元素 ##############################
del a[0]           # 删除a[0]
a.pop()            # 默认删除列表中的最后一个元素
a.remove('a')      # 删除元素的值

###################### 元素排序 ##############################
a = [1, 4, 2, 3]
a.reverse()        # 倒序排序
a.sort()           # 从小到大排序
a.sort(reverse = True)

二、元组

  元组(tuple)与列表类似,元组与列表的不同之处在于元组中的元素不能修改
   1.1 创建元组

a = tuple()    # 定义一个空元组
b = ()         # 定义一个空元组
c = 1,         # 定义仅有一个int类型数据的元组

   1.2 元组相关操作
   元组切片与列表类似,一般分为正向切片反向切片两种操作,其基本切片参数为:[start: end: step],且遵循原则为包头不包尾。

###################### 元组切片 ##############################
a = (1, 2, 3, 4, 'a')
print(a[0:len(a)])        # 正序索引, 切片步长默认为1
print(a[0:len(a):2])      # 步长为2,起始索引为0,则打印的下一个数据的索引为0+2=2, 再下一个数据索引为2+2=4

print(a[-1:-len(a)-1:-1]) # 输出('a', 4, 3, 2, 1)
print(a[::-1])            # 逆序输出('a', 4, 3, 2, 1)
print(a[-3:-1])           # 输出(3, 4)
print(a[4:2:-1])          # 输出('a', 4)
print(a[4::-1])           # 输出('a', 4, 3, 2, 1)

   1.3 其它情况
    当一个元组里有其它类型元素,如列表。在此类情况下可以修改元组里的元素。具体如下所示:

b = ('a', 'b', ['X', 'Y'])   # 创建元组
b[2][0] = 'A'                # 修改元组里的元素
b[2][1] = 'B'                           
print(b)

    上面代码输出的结果为:('a','b', ['A', 'B']),看似修改了元组的里的内容,但是实际上是修改了tuple中的列表中的值。因此,不能修改tuple中的元素指的是不能修改tuple中每个元素的指向。也即如图2-1所示,我们无法修改b[0], b[1], b[2]的值。



PYTHON中怎么用列表中的数据画图 python 列表数据_python

图2-1 元组存储示意图

三、字符串

  在python中字符串类似于字符数组,因此字符串支持下标索引。注意,python中不区分字符与字符串,也即单个字符的定义与多个字符相同。
   3.1 字符串下标索引

a = 'abcdefg'
print(a[0])
print(a[1])

   3.1 字符串相关操作
  对字符串的常规操作如下所示:(备注:这里只列举常用的一些字符串操作,其余的等有空咱再补上)

###################### 查找字符 ##############################
onestr='hello world! I love my hometown! I want to build my hometown'
onstr.find('my', 0, len(onestr))    # 返回查找到的第一个'my'中字符'm'的索引,若'my'不在onestr中则返回-1
onestr.index('my', 0, len(onestr))  # 返回查找到的第一个'my'中字符'm'的索引,若'my'不在onestr中则抛出异常
onestr.rindex('my', 0, len(onestr)) # 从右往左查找'my',并返回第一个'my'中字符'm'的索引,若'my'不在onestr中则抛出异常

###################### 字符统计 ##############################
onestr.count('my', 0, len(onestr))  # 返回字符串'my'出现的次数

###################### 字符分割 ##############################
newstr = onester.split('my', 2)     # 以'my'字符传串进行分割

###################### 字符分割 ##############################
onestr.replace('my', 'you', onestr.count('my'))    # 将'my'替换为'your',且替换次数不超过onestr.count(''my)


###################### 首字母大写 ##############################
newstr = onestr.capitalize()       # 返回一个以首字母大写的字符串

#################### 单词首字母大写 #############################
newstr = onestr.title()            # 返回一个以首字母大写的字符串

#################### 字符串开头结尾 #############################
print(onestr.startswith('hello'))  # 检查字符串是否以'hello'开头
print(onestr.endswith('town'))     # 检查字符串是否以'town'结尾

四、字典

  字典是一种可变类容器对象,且可存储任意类型对象,且使用键-值(key-value)方式存储。注意:键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。

####################### 创建字典 ###############################
slary = dict()
slary = {}                        # 空字典
info = {'name': 'David', 'sex': 'man', 'age': 15}
print(info['name'])               # 根据键访问值,若键不存在则会报错
tt = info.get('tt')               # 若不知道键是否存在字典中,可以用get方法判断,若不存在则tt=None

####################### 字典修改 ###############################
info['name'] = 'Jim'             # 根据键修改值
info['id'] = 100                 # 向字典中添加键'id'

####################### 字典删除 ###############################
del info['naem']                 # 删除指定的元素
del info                         # 删除整个字典
info.clear()                     # 变为空子典

####################### 字典遍历 ###############################
for key in info.keys():          # 遍历键
    print(key)

for value in info.values():      # 遍历值
    print(value)

for item in info.items():        # 遍历项:('键', 值)
    print(item)

for key, value in info.items():
    print('key = %s, value = %s' % (key, value))   # 分别读取键和值

五、集合

  集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合。注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

a = set('abcdefg')                 # 创建集合
print(a)
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)                      # 会自动去掉basket中重复的元素,如'apple'和'orange'
thisset = set(("Google", "Runoob", "Taobao"))
thisset.add("Facebook")            # 添加元素
print(thisset)

六、总结

   1、字符串(str)是不变对象,而列表(list)是可变对象。
   2、与列表(list)比较,字典(dict)有一下特点:
     1) 查找和插入的速度极快,不会随着key的增加而变慢。
     2) 需要占用大量的内存,导致内存浪费,因此字典(dict)是典型以空间换取时间的一种做法。
     3) 列表(list)则与字典相反,查找和插入时间随着元素的增加而增加,但是它占用空间小。

七、参考链接

   菜鸟教程