python基本数据类型(二)

列表

(列表: list / 数组 / array),编号叫下标 / 索引 / 角标

最前面一个元素的下标时0,最后面一个元素的下标是 -1

cities=[]  #定义一个空的列表
#增加元素
cities.append(‘北京‘)  #在列表末尾增加一个元素
cities.insert(0,‘上海‘)  #在指定的位置插入一个元素,一次只能加一个。

#删除元素
cities.pop(-1)  #删除指定的元素,传下标
cities.remove(‘北京‘)  #删除指定的元素,传元素
cities.clear()  #清空列表
del cities[-1]  #删除指定位置的元素,传下标

#修改
cities[1] = ‘南京‘   #指定某一个下标,直接修改即可,指定下标不能超出已有下标范围。

#查询
print(cities)  #打印整个列表
print(cities[0])   #打印指定位置的元素
print(cities.index(‘广州‘)   #获取元素的下标,如果元素不存在,则报错
print(cities.count(‘广州‘)  #查看元素在list 出现了几次
print(cities.reverse())  #返回None,但把列表反转了要重新print(cities)才能看到结果,如下:
cities.reverse()  #将cities 反转
  print(cities)   #打印cities
cities.sort()   #默认升序排序
cities.sort(reverse=True)   #降序排序,按数字或字母排序
print(cities1 + cities2)  #合并list
#切片,切片是list取值的一种方式
print(nums[1:3]) #切片只顾头不顾尾,即取下标1到3(不包括3)。
print(nums[1:]) #如果从某个下标开始取到末尾,末尾的下标可以省略
print(nums[:2]) #如果是从头开始取,取到后面某个下标(不包括)结束,开头的下标可以不写
print(nums[:]) #取出全部

列表排序的3种方法:
list.reverse()
random.shuffle(list)
list.sort()

#循环
for i in range(1,4): #range()也是顾头不顾尾
    print(i)    #打印结果:1、2、3

lis= list(range(1,21))  #类型转换为list
print(lis)        #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

#步长
lis= list(range(1,21))
print(lis[1:10:2])   #步长,隔2个取一个数字,到第9个下标

lis= list(range(1,21))
print(lis[::-1])   #如果步长时正数的话,就从左到右取值,如果步长为负数,则从右到左取值。相当于把列表反转。与.reverse()的区别是:.reverse()改变了列表的内容。
#当步长为负数时,a:b:-1,a(正)必须大于b(正),否则取值为空
例如:
lis= list(range(0,21))
print(lis)
print(lis[21:10:-1])  #从下标21到下标10取值,但不包含10的下标:[20, 19, 18, 17, 16, 15, 14, 13, 12, 11]
print(lis[:18:-1])  #从下标最大到下标18取值,但不包含18的下标:[20, 19]
print(lis[0::-1])  #从下标0到最小下标取值,只取0的下标:[0]
print(lis[::-1])    #从下标最大取到最小:[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

s = ‘abcdefghi‘
s[3] =‘h‘  #字符串变量不可以修改,报错:TypeError: ‘str‘ object does not support item assignment

lists = [‘AAA‘,‘BBB‘,‘CCC‘,‘DDD‘]
for name in lists:   #循环读取数组中的每一个元素
    print(name)

words = ‘marry,lily,joker‘
for name in words:    #循环读取字符串中的每一个字符
    print(name)
# for 循环在循环可迭代对象的时候,每次循环的是里面的每一个元素。

#如果是一个多维数组,则要判断类型。
lists = [‘AAA‘,‘BBB‘,‘CCC‘,‘DDD‘,[1,2,3,4]]
for name in lists:
     if type(name) == list:  
         for i in name:  
             print(i)  #打印列表中的列表:1 2 3 4

  

元组

元组也是一个list,它和 list 的区别是,元组里面的元素无法修改

t = (‘aaa‘,‘bbb‘,‘ccc‘,‘ddd‘,‘ee‘)
print(type(t))  #<class ‘tuple‘>
print(t[:3])  #元组的切片:(‘aaa‘, ‘bbb‘, ‘ccc‘)
print(t[4:])    # (‘ee‘,) 输出在元素后面加一个逗号,代表元组

#元组只有这两种方法,元组不能被修改。
print(t.index(‘aaa‘))   #找到元素的下标
print(t.count(‘aaa‘))   #找到元素的个数    

t2 =(1,2,4)
words = (1)
words2 = (‘abc‘)
print(‘t2‘,type(t2))    #t2 <class ‘tuple‘>
print(‘words‘,type(words))  #words <class ‘int‘>
print(‘words2‘,type(words2))    #words2 <class ‘str‘>
#如果元组里面只有一个元素的话,那么你必须在这个元素后面加一个逗号,才能成为元组。

字典

字典是 key - vaule 的形式

1. 取数据方便

2. 速度快

ifos ={‘name‘:‘AAA‘,‘sex‘:‘男‘,‘age‘:18}
# 查:字典取值就这两种方式:
print(ifos.get(‘name‘)) #如果key不存在,则返回None
print(ifos[‘name‘])    #如果key不存在,则报错
print(ifos.get(‘aaa‘,‘phone‘)) #指定如果取不到aaa这个key时,默认phone,这是get的另一种方法
#增
ifos[‘phone‘]=1852003000 #字典是无序的,添加的值不一定在最后,如果key存在,则是修改
ifos.setdefault(‘height‘,‘BBB‘)    #增加字典的另一种方式
#改
ifos[‘name‘]=‘YYYY‘ #如果key已存在,用这种方式可以修改name的值,仅此一种
ifos.setdefault(‘name‘,‘EBB‘)    #如果key已存在,用这种方式不能修改name的值
#删除
ifos.pop(‘age‘) #指定key来删除
ifos.popitem()  #随机删除一个key
del ifos[‘phone‘]   #指定key来删除
ifos.clear() #清空字典

字典内置的方法:
print(ifos.values()) #获取到字典所有的value:dict_values([‘AAA‘, ‘男‘, 18]:
print(ifos.keys())   #获取到字典的所有的key:dict_keys([‘name‘, ‘sex‘, ‘age‘])
print(ifos.items())  #获取到字典的所有的k-v:dict_items([(‘name‘, ‘AAA‘), (‘sex‘, ‘男‘), (‘age‘, 18)])

#循环

for p in people:
    print(p)    #循环字典时,打印的时字典的key

for k,v in people.items():
    print(k,‘=====>‘,v)  #循环时同时取key和value

for k in people.items():
    print(k)  #循环打印出每一个key的所有值

#TEAM 是一个字典,它的值也是一个字典,如何取值?
TEAM = {
    ‘a‘: {‘A‘: ‘B‘},
    ‘b‘: {‘C‘: ‘D‘},
}

TEAM[‘b‘].setdefault(‘X‘,‘Y‘)   #在key:b 的value中增加k-v
print(TEAM)
{‘a‘: {‘A‘: ‘B‘}, ‘b‘: {‘C‘: ‘D‘, ‘X‘: ‘Y‘}}

for v in TEAM.values(): #打印出values
     print(v)
{‘A‘: ‘B‘}
{‘C‘: ‘D‘, ‘X‘: ‘Y‘}

for k in TEAM.items():    #打印出TEAM的k-v
     print(k)
(‘a‘, {‘A‘: ‘B‘})
(‘b‘, {‘C‘: ‘D‘, ‘X‘: ‘Y‘})  

for k,v in TEAM.items():   #打印出k,v
     print(k,v)
a {‘A‘: ‘B‘}
b {‘C‘: ‘D‘, ‘X‘: ‘Y‘}

for i in TEAM.keys():   #
    for k,v in TEAM[i].items():   #
        print(i,k,v)
a A B
b C D
b X Y

集合 set

#集合的特点:天生去重,集合也是无序的。

s = set() #定义一个空集合
s2 = set(‘12344455667788‘)
s3 = {1,1,3,4,5,6,7}
s4 = {‘1‘,‘2‘,‘3‘,‘4‘}

print(s2)

#集合还可做关系测试:交集、并集、差集,只有集合才可以做交集、并集、差集操作,其他类型会报错。
print(s3 & s2) #打印为:set(),是因为 s2 中都是字符,s3 是整型。
print(s4 & s2) #取交集
print(s4.intersection(s2)) #取交集

#并集
print(s2 | s3)
print(s2.union(s3))

#差集,取一个集合存在,另一个不存在的元素
c1 = {1,2,3}
c2 = {1,4,6}
print(c1-c2) #{2, 3}
print(c2-c1)  #{4, 6}
print(c2.difference(c1))  #{4, 6}

#对称差集,去掉两集合里面都存在的,取不重复的。
print(c1^c2) #{2, 3, 4, 6}
print(c1.symmetric_difference(c2))

c1.add(‘ss‘)  #加元素
print(c1)
c1.pop()  #随机删一个元素
print(c1)
c1.remove(‘ss‘) #指定删除
print(c1)
c1.update({5,6,7})  #把另一个集合加进去
print(c1)

#也可以用isdisjoint这个方法判断交集。

原文地址:https://www.cnblogs.com/pigwood/p/9540339.html

时间: 2024-11-13 16:19:56

python基本数据类型(二)的相关文章

python基础----数据类型二

数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数据类型.在Python中,能够直接处理的数据类型有以下几种 一Number(数字) 1.1 数字类型的创建 1 2 3 4 5 6 a=10 b=a b=666   print(a)#10 print(b)#666 注意这里与C的不同: 1 2 3 4 5 6 7 8 9 10 11 12

Python 基本数据类型 (二) - 字符串1

1 # ----------- 首字母大写 ---------- 2 test = "alex is a man" 3 v = test.capitalize() 4 print(v): Alex is a man 1 # ----------- 转换全部字符串为小写 ---------- 2 test = "aLex is A man" 3 V1 = test.casefold() #更加强大,可以处理其他语言体系 4 print(V1) # alex is a

Python基础之二:数据类型

四.Python数据类型 数字 字符串 列表 元祖 字典 1.数字类型 整型 表示范围:-2147483648到2147483647,超过该范围的会被当作长整型 示例:num=123 type(num)-返回<type 'int'>,用来测试变量的类型 长整型 表示范围:任意大整数,后跟L或l与整型区别 示例:num=1l type(num)-返回<type 'long'> 浮点型 示例:num=12.0 type(num) -返回<type'float'> 复数型 示

python之数据类型(学习笔记二)

python之数据类型(学习笔记二) 在Python中,能够直接处理的数据类型有以下几种: (1)整数 Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例 如: 1 , 100 , ‐8080 , 0 ,等等. 计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用 0x 前缀和0-9,a-f表示,例 如: 0xff00 , 0xa5b4c3d2 ,等等. (2)浮点数 浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时

python学习笔记(二):python数据类型

上一篇博客写了python的入门和简单流程控制,这次写python的数据类型和各种数据类型的内置方法.一.数据类型是什么鬼?计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数据类型.二.整形和浮点型整形也就是整数类型(int)的,在python3中都是int类型,没有什么long类型的,比如说存年龄.工资.成绩等等这样的数据就可以用int类型,有正

python基本数据类型(二)-python3.0学习笔记

python基本数据类型 序列类型的自带方法 1.列表的常用方法 2.元祖的常用方法 3.字符串的常用方法 1.列表常用的方法 L.append(obj) #在列表末尾添加新的对象 L.clear() #清空列表 L.copy() #复制列表,不是同一个对象,内容相同,有返回值.id不同(内存中的地址不同) L.count(obj) #统计某个元素在列表中出现的次数 L.extend(obj) #用obj扩展原来的列表 L.index(obj) #默认值返回这个元素最先出现的索引位置:需要出现下

Python基础(二)

Python基础(二) Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典.set集合) for 循环 enumrate range和xrange 编码与进制转换 Python 运算符 1.算术运算: 2.比较运算: 3.赋值运算: 4.逻辑运算:  5.成员运算: 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483

python常用数据类型内置方法介绍

熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 一.整型 a = 100 a.xxx() class int(object): def bit_length(self): ##如果将某个整数用2进制表示,返回这个2进制所占bit位数. return 0 def conjugate(self, *args, **kwargs): ##共轭复数 @classmethod # known case def from_bytes(cls, bytes, byteorder, *ar

python基本数据类型——tuple

一.元组的创建与转换: ages = (11, 22, 33, 44, 55) ages = tuple((11, 22, 33, 44, 55))ages = tuple([]) # 字符串.列表.字典(默认是key) 元组基本上可以看成不可修改的列表 tuple(iterable),可以存放所有可迭代的数据类型 二.元组的不可变性 如:t = (17, 'Jesse', ('LinuxKernel', 'Python'), [17, 'Jesse'])元组t中的元素数字17和字符串'Jess