内建数据结构、函数

一、数据结构和序列

1.1元组,tuple,()

#元组
t1=()
print(type(t1))

'''
<class 'tuple'>
'''

t2=(1)
print(type(t2))
'''
<class 'int'>
'''

t3=('1')
print(type(t3))
'''
<class 'str'>
'''

t4=(1,)
print(type(t4))
'''
<class 'tuple'>
'''
t5=(1,2)
print(type(t5))
'''
<class 'tuple'>
'''
#1.针对元组的元素,只有1个的时候,需在括号里面的数据后,添加逗号;
#2.当元组的元素超过两个数据时,无需另添加逗号;
import random
list1=[]
for i in range(9):
    ran=random.randint(1,20)
    list1.append(ran)
print(list1)
'''
[4, 15, 16, 7, 2, 17, 9, 17, 1]
'''
t6=tuple(list1)
print(t6)
'''
(4, 15, 16, 7, 2, 17, 9, 17, 1)

'''

1.2元组拆包

#拆包、装包
a = ('computer',2,8000,(2018,10,16))
#获取所有字段数据
goods,num,price,data=a
#获取部分字段
*_,price,data=a
#
goods,*num=a
#*num返回剩下所有的数据组成的一个列表

#通配符构成的变量可以替代指定范围内的所有变量,这为取出指定元素带来了便利。很多时候可以使用'*_'来表示不想要的变量;

2.1 列表,list,[]

2.1.1 使用append方法可以将元素添加到列表的尾部;

2.1.2 使用Insert方法可以将元素插入到指定的列表位置;

2.1.3 使用pop方法可以将特定位置的元素移除并返回;

2.1.4 使用remove方法可以移除第一个符合要求的值;

2.1.5 连接和联合列表

    ①两个列表可以使用+号连接;

    ②extend

x=[4,None,'hello']
x.extend([1,3,9])
print(x)
'''
[4, None, 'hello', 1, 3, 9]
'''

2.1.6 排序 sort

2,1.7 切片 :使用切片符号可以对大多数序列类型选取其子集,基本形式为start:stop

seq=[7,2,5,8,5,6,9]
seq[2:5]
print(seq[2:5])

起始位置start是包含索引,stop是不包含索引,因此元素的数量stop-start;

start和stop省略的情况,即取所有;

seq=[7,2,5,8,5,6,9]
seq[:]
print(seq[:])
'''
[7, 2, 5, 8, 5, 6, 9]
'''

负索引,即从序列的尾部进行索引

seq=[7,2,5,8,5,6,9]
seq[-3:]
print(seq[-3:])
'''
[5, 6, 9]
'''

[start:stop:step]步进值step可以在第二个冒号后面使用,即每隔多少个数取一个值;

seq=[7,2,5,8,5,6,9]
seq[::3]
print(seq[::3])
'''
[7, 8, 9]
'''

当需要对列表或元组进行翻转时,可以设置step=-1

seq=[7,2,5,8,5,6,9]
seq[::-1]
print(seq[::-1])
'''
[9, 6, 5, 8, 5, 2, 7]
'''

3.1. 内建序列函数

3.1.1 enumerate 

some_list=['fish','rice','pear','apple']
goods={}
for i,v in enumerate(some_list):
    goods[i]=v
print(goods)
'''
{0: 'fish', 1: 'rice', 2: 'pear', 3: 'apple'}
'''

3.1.2 sorted 函数返回一个根据任意序列中的元素新建的已排序列表;

sorted([7,2,5,8,5,6,9])
'''
[2, 5, 5, 6, 7, 8, 9]
'''

3.1.3 zip将列表、元组或其它序列的元素配对,新建一个元组构成的列表;

seq1=['foo','bar','baz']
seq2=['one','two','three']
zipped=zip(seq1,seq2)
print(list(zipped))
'''
[('foo', 'one'), ('bar', 'two'), ('baz', 'three')]
'''

3.1.4 reversed函数将序列的元素倒序排列:

print(list(reversed(range(10))))
'''
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
'''

4.1 字典:哈希表、关联数组

4.1.1 从序列生成字典

mapping={}
for key,value in zip(key_list,value_list):
    mapping[key]=value

5.1 集合:无序且元素唯一的容器;{}

两个集合的并集:union;

两个集合的交集:intersection

6.1 列表、集合和字典的推导式

列表推导式的基本形式:[  expr for val in collection if condition  ]

strings=['a','am','alibab','baidu','qq','wangyi']
new=[x.upper() for x in strings if len(x)>3]
print(new)
'''
['ALIBAB', 'BAIDU', 'WANGYI']
'''

6.1.1 嵌套列表推导式

some_tuples=[(1,2,3),(4,5,6),(7,8,9)]
new=[x for tup in some_tuples for x in tup]
print(new)
'''
[1, 2, 3, 4, 5, 6, 7, 8, 9]
'''

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值