Python基础入门——数据结构

一、列表(list)

(1)定义

a=[9,3,4,2,6,8]  #用中括号去定义、创建
b=[] #定义一个空列表
print(a)  #[9,3,4,2,6,8]
print(b)  #[]

(2)访问

(2.1)索引访问

正索引从0开始;负索引从-1开始

a=[9,3,4,2,6,8]
print(a[2])   #4   正索引从0开始
print(a[-2])  #6   负索引从-1开始
a[2]=666      
print(a)      #[9,3,666,2,6,8]

(2.2)切片访问

a [ 开始:结束:步长 ] —— 左闭右开 [ 开始:结束 )

a=[9,3,4,2,6,8,5,0,1]
print(a[2:6:2])   #[4, 6]
print(a[2:6])     #[4, 2, 6, 8]
print(a[6:])      #[5, 0, 1]
print(a[:6])      #[9, 3, 4, 2, 6, 8]
print(a[6:-1])    #[5, 0]

(3)添加

b=[8,3,4]
b.append(666)
print(b)   #[8, 3, 4, 666]

(4)删除

b=[8,3,4,1]
del b[2]   #delete函数 列表名[索引]
print(b)  #[8,3,1]

(5)连接

a=[9,3,4,2,6,8,5,0,1]
b=[213,3425,53,234]
print(a+b)   #[9, 3, 4, 2, 6, 8, 5, 0, 1, 213, 3425, 53, 234]

(6)迭代

a=[5,8,7]
b=a*3
print(b)  #[5, 8, 7, 5, 8, 7, 5, 8, 7]

二、元组(tuple)

(1)创建

x=(2,3,4,6,8,1,7)  #用小括号去创建
print(x)         #(2,3,4,6,8,1,7)
print(type(x))   # <class 'tuple'>
y=(5)
z=(5,)
print(y)         # 5
print(type(y))   # <class 'int'>
print(z)         # (5,)
print(type(z))   #  <class 'tuple'>
a=('cdbdjhs',5)
b=("bdcjfhbsd")
print(a,)       # ('cdbdjhs', 5) 
print(b)        # bdcjfhbsd 
print(type(a))  # <class 'tuple'>
print(type(b))  # <class 'str'>

(2)访问

a [ 开始:结束:步长 ] —— 左闭右开 [ 开始:结束 )

a=(9,3,4,2,6,8,5,0,1)
print(a[2])       # 4
print(a[-2])      # 0
# a[2] = 666  元组不允许更改值
print(a[2:6:2])   #[4, 6]
print(a[2:6])     #[4, 2, 6, 8]
print(a[6:])      #[5, 0, 1]
print(a[:6])      #[9, 3, 4, 2, 6, 8]
print(a[6:-1])    #[5, 0]

(3)操作

(3.1)删除

a=(5,8,7,3,9,6,1,0,2)
print(a)
del a
print(a)  #发生异常: NameError: name 'a' is not defined

(3.2)连接

a=(1,2,3)
b=(4,5,6)
c=a+b
print(c)   # (1, 2, 3, 4, 5, 6)

(3.3)计算长度

a=(5,8,7,3,9,6,1,0,2)
print(len(a))   # 9

(3.4)迭代(重复)

a=(5,8,7)
b=a*3
print(b)  # (5, 8, 7, 5, 8, 7, 5, 8, 7)

三、字典

(1)定义

用键值对表示key:value

a={
    "huawei":"001",
    "xiaomi":"002",
    "apple":"003",
    "haode":666
}
print(a)  # {'huawei': '001', 'xiaomi': '002', 'apple': '003', 'haode': 666}
print(type(a))   #<class 'dict'>  字典类型

(2)引用

a={
    "huawei":"001",
    "xiaomi":"002",
    "apple":"003",
    "haode":666
}
print(a["huawei"])  # 001
print(a["haode"])   # 666

a["haode"] = 777   # 修改数据
print(a["haode"])   # 777

(3)增加

a={
    "huawei":"001",
    "xiaomi":"002",
    "apple":"003",
    "haode":666
}
a["oppo"]="004"
print(a)  
# {'huawei': '001', 'xiaomi': '002', 'apple': '003', 'haode': 666, 'oppo': '004'}

(4)删除

字典是无序的,不可根据下标操作

a={
    "huawei":"001",
    "xiaomi":"002",
    "apple":"003",
    "haode":666
}
del a["apple"]
print(a)  # {'huawei': '001', 'xiaomi': '002', 'haode': 666}

四、集合

(1)定义

集合里面没有重复的值

(1.1)直接使用 { } 创建

1、打印出来后 顺序和定义时不同
2、如有重复项,会自动去重

mySet={"Jeasu","18 years old","a beautiful girl"}
print(mySet)  #{'18 years old', 'a beautiful girl', 'Jeasu'}

n={2,4,3,5,9,2,6,6}
print(n)  #{2, 3, 4, 5, 6, 9}

n={243,56,73,342,6,6}
print(n)  #{243, 6, 342, 56, 73}

(1.2)使用set ( ) 创建

1、将列表、元组等迭代对象转换成集合
2、如有重复项,会自动去重

mySet = set([1,2,3,4])
print(mySet)  # {1,2,3,4}

m=[1,1,321,4]
y=set(m)
print(y)  #{321, 1, 4}

b=(5,7,4,6)
z=set(b)
print(z) # {4, 5, 6, 7}

(2)添加

向集合里添加元素:集合名.add(元素)

z={4, 5, 6, 7}
z.add(999)
print(z)  # {4, 5, 6, 999, 7}

(3)删除

(3.1)删除集合

z={4, 5, 6, 7}
del z
print(z)  #发生异常: NameError: name 'z' is not defined  

(3.2)删除元素

pop( ) :随机删除一个元素,但经过大量测试:如果是数字,则删除的是最小值;如果是字符串,则可能随机删除

z={4, 5, 6, 7}
z.pop()
print(z)  #{5, 6, 7}

mySet={"jeasu","18 years old","a beautiful girl"}
mySet.pop()
print(mySet)
#执行两次pop(),结果分别为
# {'jeasu', '18 years old'},{'18 years old', 'a beautiful girl'}
#可见若是字符串,则是随机删除

remove ( ) :删除指定元素

z={4, 5, 6, 7,999}
z.remove(7)
print(z)  # {4, 5, 6, 999}

clear( ) :删除全部元素

z={4, 5, 6, 7,999}
z.clear()
print(z)  # set()  集合还在 是个空集合

(4)运算

(4.1)交集:&

a={1,2}
b={3,1,4}
print(a & b)  # {1}

(4.2)并集:|

a={1,2}
b={3,1,4}
print(a|b)  # {1, 2, 3, 4}

(4.3)差集:—

a-b :将b中元素从a中扣除(有则去除)

a={1,2}
b={3,1,4}
print(a-b)  #{2}

五、列表、元组、字典和集合的区别

数据结构是否可变是否重复是否有序定义符号
列表(list)可变可重复有序[ ]
元组(tuple)不可变可重复有序( )
字典(dictionary)可变可重复无序{ key:value }
集合(set)可变不可重复无序{ }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值