python基本数据类型(上)

前言介绍

首先介绍下Python的基本数据类型:
Python中有6中基本数据类型,其中有三种可变(list列表,set集合,dict字典),三种不可变(int类型,tuple元组类型,str字符串类型),其中各种数据类型表示方法如下:
‘’’
列表: []
元组: ()
字典:{}
集合:{}
集合是无序的
集合中的元素数唯一的
集合中的元素就可以用来作关系测试
‘’’

列表类型list
定义一个列表:
List=["语文","英语","物理","化学","历史", "语文","数学","英语","物理","语文","数学"]
切片
print(List[1],List[2])      #获取下标为1和2的元素
print(name[2:4])            #获取下标2到4之间的元素
print(name[-4:-2])          #反向切片(最后一个元素下标为-1)
print(name[5:])               #下表为0后边所有元素

#数学 英语
#['物理','化学']
#['英语', '物理']
#['语文', '数学', '英语', '物理', '语文', '数学']
列表插入
List.append("政治")                     #添加在末尾

List.insert(3,"高等代数")                #指定位置插入
print(List)

#['语文', '英语', '物理', '化学', '历史', '语文', '数学', '英语', '物理', '语文', '数学', '政治']
#['语文', '英语', '物理', '高等代数', '化学', '历史', '语文', '数学', '英语', '物理', '语文', '数学', '政治']
列表修改、删除
List[3]="数学分析"                 #替换指定位置元素
print(List)

#['语文', '英语', '物理', '数学分析', '历史', '语文', '数学', '英语', '物理', '语文', '数学']

List.pop(1)
print(List)                        #抛出

#['语文', '物理', '化学', '历史', '语文', '数学', '英语', '物理', '语文', '数学']

a=List.pop(2)
print(a)                            #可打印

#化学

del List[3]
print(List)

#['语文', '物理', '历史', '数学', '英语', '物理', '语文', '数学']
查找、计数、清空
print(List.index("语文",3,-2))                     #在某个区间内查找元素,输出元素下标
print(List.count("物理"))                           #输出元素个数
List.clear()
print(List)
:
#5
#2
#[]
顺序反转、合并
List.reverse()                            
print(List)

List_one=["2","a66","55","a5","2a","w","s","5","23","12"]
print(List.extend(List_one))

#['数学', '语文', '物理', '英语', '数学', '语文', '历史', '化学', '物理', '英语', '语文']
#['语文', '英语', '物理', '化学', '历史', '语文', '数学', '英语', '物理', '语文', '数学', '2', 'a66', '55', 'a5', '2a', 'w', 's', '5', '23', '12']
深浅拷贝
'''
拷贝:原则上就是把数据分离出来,复制其数据,并且以后修改互不影响。
**浅拷贝:copy.copy()**
数据半共享,复制其数据,但是有单独的地址存放(只拷贝数据的第一层,无法拷贝数据的第二层,所以,它的第二层依旧指向l1的内存,第二层数据内存共享,当修改第二层数据时,它也会随之改变)

**深拷贝:copy.deepcopy()**
数据完全不共享,复制器数据完完全全放在一个独立的内存,完全拷贝(完完全全的复制一份,不会因为数据的修改而变动,内存不共享)

import copy
List_two=["Python","C语言","JAVA","C#",["HTML","PHP",".NET"]]

List_three=List_two.copy()                     #只是拷贝了List_two的地址
List_four=copy.deepcopy(List_two)              #拷贝的是List_two的内容
print(List_three)
print(List_four)
#['Python', 'C语言', 'JAVA', 'C#', ['HTML', 'PHP', '.NET']]
#['Python', 'C语言', 'JAVA', 'C#', ['HTML', 'PHP', '.NET']]

List_two[4][1]="CSS"
List_two[1]="Mysql"

print(List_three)          #因为只是拷贝的地址,原内容改变,则拷贝内容也改变
print(List_four)           #相当于一份新的内容,与原来的无关,则原内容不改变

#['Python', 'C语言', 'JAVA', 'C#', ['HTML', 'CSS', '.NET']]
#['Python', 'C语言', 'JAVA', 'C#', ['HTML', 'PHP', '.NET']]
'''
列表生成式
两种写法都可以:
print([i*i for i in range(10)])           #列表生成式
print(list(i**3 for i in range(10)))

#[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
#[0, 1, 8, 27, 64, 125, 216, 343, 512, 729]
集合类型set

set是一个无序不重复的元素集合
创建集合的方式:
方式一:
使用花括号{ }创建集合,传入集合元素。
注意:传入的元素对象必须是不可变的,即不能传入列表、字典等。
eg: myset = {‘A’,’X’,’W’,’Z’}
方式二:
使用set()函数创建集合
注意:使用set()函数将可迭代对象转换为集合。

关系测试(取交集)
Set1={1,2,3,4,5,6,7,8,9}
Set2={7,6,5,4}
print(Set1.intersection(Set2))

#{4, 5, 6, 7}
取并集
Set1={1,2,3,4,5,6,7,8,9}
Set2={2,5,99,35}
print(Set1.union(Set2))

#:{1, 2, 3, 4, 5, 6, 7, 8,99,35}
取差集(去掉1中存在的,而2中不存在的元素)
Set1={1,4,7,8,9}
Set2={11,58,99,250}
print(Set1.difference(Set2))

#{1, 4, 7, 8, 9}
判断子集
Set1={1,4,7,8,9,38,78}
Set2={11,58,99,250}
print(Set1.issubset(Set2))

#False
判断父集
Set1={1,2,3,4,5,6,7,8,9}
Set2={2,5,99,35}
print(Set1.issuperset(Set2))

#False
去对称差集(会去掉1和2中都存在的元素)
Set1={1,4,7,8,9}
Set2={11,58,99,250}
print(Set1.symmetric_difference(Set2))

#{1, 99, 58, 4, 7, 8, 9, 11, 250}
判断是否没有共同元素
Set1={99,88,77,0}
print(Set1.isdisjoint({0,10}))

#True
交集(&)、并集(|)、差集(-)、对称差集(^)
Set1={1,2,3,4,5,6,7,8,9}
Set2={7,6,5,4}

print(Set1 & Set2)

#{4, 5, 6, 7}

print(Set1 | Set2)

#{1, 2, 3, 4, 5, 6, 7, 8}

print(Set1 - Set2)

#{8, 1, 2, 3}

print(Set1 ^ Set2)

#{1, 2, 3, 8}
新增、删除元素
增加:
Set1={0,12,1,9,2,2,5,6,5,7}
print(Set1)

#{0, 1, 2, 5, 6, 7, 9, 12}

Set1.add(946)                    #增加单个
print(Set1)

#{0, 1, 2, 5, 6, 7, 9, 12, 946}

Set3={1,2,5,3,88,99}           #合并连个列表
Set1.update(Set2)
print(Set1)

#{1, 2, 3, 4, 99, 38, 7, 8, 9, 5, 78, 88}

删除:
Set={1,4,2,5,6}
Set.remove(5)
print(Set)

Set.discard(5)
print(Set)                         #使用discard和remove都可以删除set当中的元素,区别就是remove的元素在set当中没有的话会报错,而discard不会。


print(Set.pop())               #随机删除,并打印删除元素

#{1, 2, 4, 6}
#{1, 2, 4, 6}
#1
字典类型dict

字典是另一种可变容器模型,且可存储任意类型对象。
字典是一系列键值对(key-value)。每个键都与一个值关联。字典使用花括号的标识{}

特点:具有极快的查找速度  用来编写搜索的最快方法

字典常操

创建字典

方式一
使用花括号{ }创建dict(xx,xx)
只要将字典中的一系列键和值按键值对的格式(key:value,…)传入花括号{ }中,并以逗号将各键值对隔开,即可实现创建字典。
注意:键(key)在字典中不允许重复,如果key重复,则最后出现的key-value对会覆盖前面相同的key。
方式二
使用dict函数创建
dict(**kwd)
dict([(两个元素),(两个元素),…])

#dict={key:"value"}                #key--value形式
dict={1:"one",2:"two",3:"three",4:"four"}
字典的增删查改
dict={1:"one",2:"two",3:"three",4:"four"}
print(dict[3])                    #直接按照key只查找
#three

dict[6]="six"                     #字典名[key]="value"
print(dict)
#{1: 'one', 2: 'two', 3: 'three', 4: 'four', 6: 'six'}

del dict
print(dict)                       #全部删除
#<class 'dict'>

a=dict.pop(2)                     #标准删除并抛出
print(dict)
print(a)
#{1: 'one', 3: 'three', 4: 'four'}
#two

dict.popitem()                     #随机删除
print(dict)
#{1: 'one', 2: 'two', 3: 'three'}

print(dict.get(3))
print(4 in dict)                   #判断字典中是否存在4这个键值
#three
#True
字典的打印、拼接
print(dict.values())                                      #打印所有值
#dict_values(['one', 'two', 'three', 'four'])

print(dict.keys())                                        #打印所有的键值
#dict_keys([1, 2, 3, 4])

dict1={1:"one",4:"four",6:"six"}                          #字典拼接
dict2={3:"three",2:"two"}
dict1.update(dict2)
print(dict1)
#{1: 'one', 4: 'four', 6: 'six', 3: 'three', 2: 'two'}

dict={1:"one",2:"two",3:"three",4:"four"}                 #打印所有项
print(dict.items())
#dict_items([(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')])

c=dict.fromkeys([2,5,1],"-+-+")                         #字典初始化
print(c)
#{2: '-+-+', 5: '-+-+', 1: '-+-+'}

'''fromkeys现象说明'''
c=dict.fromkeys([7,8,9],[1,{"a","N"},"hello"])
print(c)
#{7: [1, {'N', 'a'}, 'hello'], 8: [1, {'N', 'a'}, 'hello'], 9: [1, {'N', 'a'}, 'hello']}

d={3:"three",2:"two",4:"four",1:"one"}                 #字典的遍历
for i in d:
    print(d[i])
#three
#two
#four
#one
dict_one={3:"three",2:"two",4:"four",1:"one"}
for k,n in dict_one.items():                                  #遍历key值和value值
    print(tuple(n))
#3 three
#2 two
#4 four
#1 one

a=["key1","key2","key3"]
b=["A","B","C"]                     
print(dict(zip(a,b)))                                #将两个列表转化为字典
#{'key1': 'A', 'key2': 'B', 'key3': 'C'}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值