Python的内置数据结构

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mikkles/article/details/79266235

数据结构

可迭代对象 iterable

  • 一个对象
  • 每次能够返回X的成员

  • 每次读取字符串的一个字符
  • 每次读取文件的一行
for x in iterable:
    for x in range(10):
    for x in "abcdef":
    for x in [0,1,2,3]:

range()函数:

用法:

  1. range(start,stop,step=1),前闭后开区间
  2. range(20,4,-4)依次返回20,16,12,8
  3. 与python2的区别:
    1. xrange()相当于python3的返range()返回的是可迭代对象
    2. range()

列表

  • 列表是可变序列
    • 列表元素可修改
    • 元素有先后顺序
print(list("abc"))
#['a','b','c']
print(list((1,2,3)))
#[1,2,3]


    • list.append(x)
      • 在列表的末端增加一个元素==a[len(a):]=iterable
    • list.extend(iterable)
      • 利用可迭代对象扩展列表,相当于a[len(a):] =iterable
      • 与list.append(x)区别
    • list.insert()
      • 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x)

a=[1,2,3]
a.append(4)
print(a)
#[1,2,3,4]
a.extend([4,5])
print(a)
#[1,2,3,4,4,5]
a.append([4,5])
print(a)
#[1,2,3,4,5,[4,5]]


    • list.remov(x)
      • 删除第一次出现的x(如果没有,报错)
    • list.pop([i]) 弹出第i个元素
    • list.clear()清空列表元素,变为空列表

    • list.reverse() 反转
    • a[i]=x

    • list.index(x[,start[,end]])定位
    • list.count(x)计数
  • 切片
    • a[i:j]
      • a[1:10]

  • 列表推导式

列表推导式 List Comprehension (近似数学定义的编程表达)

Python:[x for x in range(0,10) if x % 2 == 0]

元组 - tuple

  • 元素不可修改
  • 元组用(…),列表用[…]
  • 元组中只包含一个元素时,需要在元素后面添加逗号
    • tuple_1=(50,)
  • 删除
    • del tuple_1

    • 元素不可修改,tuple_3=tuple1+tuple2 连接

    • tuple[0],tuple[-1]
  • 索引,切片
    • tup[1:]

假设有
- tup1=(1,2,3)
- tup2=(“xyz”,”abc”)

表达式 结果 描述
tup1+tup2 (1,2,3,”xyz”,”abc”) 按顺序连接
tup1*3 (1,2,3,1,2,3,1,2,3) 复制,乘法是特殊的加法
4 in tup1 False 元素是否存在
len(tup1) 3 计算元素个数,得到元组长度
max(tup1+tup2) 3 返回元组中元素最大值
tuple([1,2,3]) (1,2,3) 将列表等结构转换成元组

字符串

  • 不可变类型
    • python中没有单个字符

    • s[0],s[2:5]

    • s=s1+s2
  • 单引号,双引号,三引号

转义字符

\(在行尾时) 续行符
\\ 反斜杠符号
\’ 单引号
\” 双引号
\n 换行
\t 横向制表符
  • 格式化字符串

    • print(“My name is %s and weight is %s kg”%(“Ramon”,75))
  • 字符串常用内置函数

函数名 功能
string.capitalize() 把字符串的第一个字符大写
string.count(str,deg=0,end=len(string)) 统计str出现的次数
string.startswith(obj,beg=0,end=len(string)) 判断是否以obj开头,布尔值
string.endswith(obj,beg=0,end=len(string)) 判断是否以obj结尾
string.split(str=”“,num=string.count(str)) 以str为分隔符切片string,如果num有指定值,则仅分隔num个子字符串

字典

  • 可变类型

  • 字典

    • 每个键值对key-value pair内部用冒号分隔
    • 每个键值对之间用逗号分隔
    • 用花括号包裹
    • 键必需是唯一的,但值可以随意
    • 值可以取任何数据类型,但键必需是不可变的,如字符串,数字或元组
 dict={"name":"zare",
       "age":88,
       "huhu",p}
  • 增加
    • dict1[“school”]=”家里蹲大学”
  • 删除
    • del dict1[“name”]#删除键是name的那一行信息
    • dict.clear()#清空字典所有信息
    • del dict1#删除词典
  • 修改
    • dict1[“age”]=8
  • 访问
    • dict1[“Alice”]

函数 功能
dict.keys() 以列表返回字典中的所有键
dict.values() 以列表返回字典中的所有值
dict.items() 以列表返回字典中的所有(键,值)元组

集合

  • 不可变类型
  • 不支持索引
  • 运算
    • 并集(A|B)
    • 交集(A&B)
    • 差集(A-B)
    • 异或(A^B)

函数 功能
set.add(x) 为集合增加一个值
set.discard(x) 删除集合中的一个值
set.remove(x) 删除集合中的一个值,若X不在集合中,会报错
set.clear(x) 删除集合中的所有内容

冷冻集合-frozenset

  • 不可改变的
  • fest=frozenset([1,2,3,4])

猜你喜欢

转载自blog.csdn.net/mikkles/article/details/79266235