recipiente de dados
1.7 Contêineres de Dados
1.7.1 Introdução
1. Como uma variável pode definir vários dados? ? ?
- A definição da variável do container é adotada. Você pode usar definições de container, coleções, etc.
2. O que é um contêiner de dados?
Pode armazenar vários dados python
3. Tipos comuns de contêineres de dados
- lista
- tupla
- str
- definir coleção
- dicionario dicionario
1.7.2 lista lista
1. Introdução
- Literal
- definir variáveis
- definir uma lista vazia
# 定义列表1
a=[1,2,3,4,5,6,8]
print(a)
print(type(a))
# 保存多种数据类型
x=[1,1,2,'张三',True,False,None]
print(x)
# 空列表
print([])
2. Aninhamento de lista
# 定义列表2
b=[1,2,3,4,5,6,8,[1,2,3,]]
print(b)
print(type(b))
1.7.3 tupla tupla
1. Introdução
2. A lista pode ser modificada, mas a tupla não. A tupla é equivalente a uma lista somente leitura. Uma vez definida, ela não pode ser modificada.
3. O caminho da definição
- Literal
- atribuição direta
- maneira de classe
4. Caso simples
- Várias formas de criar
- definir uma tupla vazia
# 元组创建
a=(1,2,3,'你好')
b=()
c=tuple()
print(a)
print(b)
print(c)
print(type(a))
5. Defina uma única tupla
- Ao definir uma tupla de um único elemento, você precisa prestar atenção ao formato da definição
- Quando os dados de entrada são um, uma vírgula deve ser adicionada após, caso contrário, será automaticamente reconhecido como o tipo de dados int correspondente
# 定义单个元素的元组,注意语法格式!!!!
d=(1)
e=(1,)
print(d)
print(e)
print(type(d))
print(type(e))
6. Aninhamento de tuplas
# 元组嵌套
dd=((1,2,3,),4,5,6,(7,8,9))
print(type(dd))
print(dd)
7. Obtenha os dados na tupla
- O método de busca de dados é o mesmo de buscar os dados na coleção de listas, ou seja, não pode ser modificado.
dd=((1,2,3,),4,5,6,(7,8,9))
print(dd[0])
print(dd[-1])
print(dd[0][0])
1.7.4 String str
1. Introdução
- Há usos e introduções na frente
2. Índice subscrito
- Métodos de passagem direta e reversa
# str的遍历
s="hello word"
# 正向索引
print(s[0])
print(s[1])
print(s[2])
print(s[3])
print(s[4])
# 反向索引
print(s[-1])
print(s[-2])
print(s[-3])
print(s[-4])
3. A string pode ser modificada? ? ? ? ? não suporta
- Como modificar dados em uma string
A menos que modificado pela redefinição do valor na string da versão
s='12122'
print(s)
1.7.5 conjunto de coleta
Defina um dicionário vazio, {} não é compatível com o conjunto para definir uma coleção vazia. Tome cuidado. Ao definir um conjunto vazio, ele é definido na forma de set(). .
1. O que aprender
2. Analise o contêiner de dados original
- set não permite duplicatas. . .
3. Definição
# 定义
s={1,2,3,4,5,6}
y=set()
z={} #这个定义的是空的字典并不是空的set要注意
print(s)
print(y)
print(z)
4. Como acessar? ? ? ? ?
- Índices subscritos não são suportados e podem ser modificados. Por não estar ordenado, o índice torna-se inválido.
5. Operações básicas de cobranças
# 添加新元素,相同的会自动的省略掉
y.add(1)
y.add(1)
y.add(2)
y.add(3)
y.add(4)
y.add(5)
print(y)
# 移除元素
y.remove(1)
print(y)
# 取出元素,无参数的,随机取一个
y.pop()
print(y)
# 清空set
y.clear()
print(y)
6. Diferença de conjuntos
- Leva a diferença de dois conjuntos. O que se tira é que o conjunto 1 tem mas o conjunto 2 não tem é o conjunto da diferença, o conjunto em si não muda e obtém-se um novo conjunto
- não altera a coleção em si
# set的差集
a={1,2,3}
b={1,4,5,6}
# 差集的获取,difference
print("差集,",a.difference(b))
print(f"a,{a}")
print(f"b,{b}")
2. Elimine a diferença entre dois conjuntos, método difference_update
- A coleção 1 será modificada, mas a coleção 2 não. Elimine os elementos do conjunto 1 que são iguais aos do conjunto 2.
#消除差集,此时集合a会受到改变的
a={1,2,3}
b={1,4,5,6}
print("消除差集,",a.difference_update(b))
print(f"a,{a}")
print(f"b,{b}")
3. A coleção é mesclada sem se alterar e uma nova é obtida, união
# 集合合并,不改变本身,得到一个新的,union
a={1,2,3}
b={1,4,5,6}
print("集合合并,",a.union(b))
print(f"a,{a}")
print(f"b,{b}")
4. Conte o número na coleção
- Observe que a coleção em si é desduplicada
# 统计集合中的数量
a={1,2,3}
b={1,4,5,6}
print(len(a))
print(len(b))
5. Travessia da coleção
Suporta o loop while, ou seja, não suporta o acesso ao índice, mas suporta o loop for correspondente, semelhante à travessia do objeto
# 集合的遍历
# 不支持while循环,也就是不支持index访问的方式,但是支持对应的for循环的方式,类似对象的遍历的方式
b={1,4,5,6}
for i in b:
print(i,' ',end='')
6. Resumo
7. Características do conjunto
8. atravessar
9. Uso
- Pode ser despesado
1.7.6 Dicionário do dicionário
1. Definição
- dicionários no dia a dia
- O dicionário em py, a chave encontra o valor do valor correspondente
- Formato de dados semelhante ao json
2. Definição
Diferente da definição de conjunto
# 字典的定义
# 字面量的方式
stu={
"name":"张三",
"age":18,
"sex":"男"
}
print(stu)
# 定义空字典,set中是不支持{}定义空的集合的
em={}
em2=dict()
print(type(em))
print(type(em2))
3. Definir dicionários repetidos
- Conjuntos e dicionários são muito semelhantes.
- A chave não é permitida, mas o valor correspondente à chave é possível. Por padrão, ela é desduplicada automaticamente. Por padrão, apenas o valor correspondente à última chave pode ser salvo. Os novos substituem os antigos.
4. Como obtê-lo? ? /
- O método de aquisição de chave usado não pode usar o método de índice para obter os dados correspondentes.
# 数据获取
print(stu['name'])
print(stu['age'])
print(stu['sex'])
5. Aninhamento de dicionários
- Aninhado pode ser obtido
# 嵌套的字典
stu={
"name":"张三",
"age":18,
"sex":"男",
"score":{
"a":99,
"b":89,
"c":18
}
}
print(stu)
print(stu['score'])
print(stu['score']['a'])
1.7.7 O índice da seguinte tabela de lista
1. Classificação do índice
- Índice de encaminhamento: O índice do primeiro subscrito é 0. Comece a incrementar sequencialmente.
- Índice reverso: de trás para frente, começando com -1.
- Obtenha os dados no índice aninhado
2. Obtenha o elemento correspondente ao índice
mylist=['张三','李四','王五',[20,30,40]]
# 正向索引
print(mylist[0])
print(mylist[1])
print(mylist[2])
print(mylist[3])
# 反向索引
print(mylist[-1])
print(mylist[-2])
print(mylist[-3])
print(mylist[-4])
# 取嵌套中的数据
print(mylist[-1][0])
print(mylist[-1][1])
print(mylist[-1][2])
1.7.8 Operações comuns de lista
Um método de operação simples pode ser executado, como adicionar, excluir, modificar, verificar e contar o número
Reabastecimento:
A diferença entre uma função e um método é na verdade a mesma em essência, e a forma de usar e chamar é diferente. O último é chamado por meio do objeto de classe e não pode ser chamado diretamente.
1. Consulta
# list常用的方法
mylist=['张三','李四','王五','赵六']
index obtém o valor do índice
# index获取索引的值
print(mylist.index("张三"))
2. Modifique o valor do índice especificado
- É a operação de reatribuição
#修改指定下标的值
print(mylist[1])
mylist[1]='李四修改'
print(mylist[1])
3. Insira, posição especificada
#插入元素,可以在指定的位置插入指定的元素,索引是0开始的
mylist.insert(1,"陈二")
print(mylist)
4. Anexar ao final
# 插入到尾部
mylist.append("网管")
print(mylist)
5. Adicione um lote de dados
- ampliar
# 插入多个元素
mylist2=[1,2,3]
mylist.extend(mylist2)
print(mylist)
6. Exclua os dados no local especificado
del é uma palavra-chave para excluir dados
# 删除指定位置的数据del
print(mylist)
del mylist[2]
print(mylist)
7. pop exclui os dados na posição de índice especificada
- pop é o método de lista usado para deletar dados
- O valor dos dados a serem excluídos pode ser obtido
#pop方法删除指定位置数据的删除,有返回值的
print(mylist)
temp=mylist.pop(0)
print(f"被删除的数据是,{temp}")
print(mylist)
8. Exclua a primeira ocorrência do elemento. O valor passado é o parâmetro
# remove,从前往后删除第一个匹配的元素
print(mylist)
mylist.remove("网管")
print(mylist)
9.claro vazio
# 清空
print(mylist)
mylist.clear()
print(mylist)
10. Conte o número de ocorrências de um determinado elemento.
# 统计某个元素出现的数量
mylist=[1,1,2,3,4,5,8,45,44,88,15]
print(mylist)
print(mylist.count(1))
11. Conte o número de todos os elementos da lista
# 全部元素的数量
print(len(mylist))
O código completo para o caso acima
# list常用的方法
mylist=['张三','李四','王五','赵六']
# index获取索引的值
print(mylist.index("张三"))
#修改指定下标的值
print(mylist[1])
mylist[1]='李四修改'
print(mylist[1])
#插入元素,可以在指定的位置插入指定的元素,索引是0开始的
mylist.insert(1,"陈二")
print(mylist)
# 插入到尾部
mylist.append("网管")
print(mylist)
# 插入多个元素
mylist2=[1,2,3]
mylist.extend(mylist2)
print(mylist)
# 删除指定位置的数据del
print(mylist)
del mylist[2]
print(mylist)
#pop方法删除指定位置数据的删除,有返回值的
print(mylist)
temp=mylist.pop(0)
print(f"被删除的数据是,{temp}")
print(mylist)
# remove,从前往后删除第一个匹配的元素
print(mylist)
mylist.remove("网管")
print(mylist)
# 清空
print(mylist)
mylist.clear()
print(mylist)
# 统计某个元素出现的数量
mylist=[1,1,2,3,4,5,8,45,44,88,15]
print(mylist)
print(mylist.count(1))
# 全部元素的数量
print(len(mylist))
resultado:
0
李四
李四修改
['张三', '陈二', '李四修改', '王五', '赵六']
['张三', '陈二', '李四修改', '王五', '赵六', '网管']
['张三', '陈二', '李四修改', '王五', '赵六', '网管', 1, 2, 3]
['张三', '陈二', '李四修改', '王五', '赵六', '网管', 1, 2, 3]
['张三', '陈二', '王五', '赵六', '网管', 1, 2, 3]
['张三', '陈二', '王五', '赵六', '网管', 1, 2, 3]
被删除的数据是,张三
['陈二', '王五', '赵六', '网管', 1, 2, 3]
['陈二', '王五', '赵六', '网管', 1, 2, 3]
['陈二', '王五', '赵六', 1, 2, 3]
['陈二', '王五', '赵六', 1, 2, 3]
[]
[1, 1, 2, 3, 4, 5, 8, 45, 44, 88, 15]
2
11
resumo:
resumo da lista
1.7.9 O caso da lista
Código de referência
# list列表案例
# 定义
mylist=[21,25,21,23,22,20]
print(f'初始化,{mylist}')
# 添加到尾部
mylist.append(31)
print(f'添加后,{mylist}')
# 追加列表
mylist.extend([29,33,30])
print(f'追加列表后,{mylist}')
# 取出第一个元素
print(mylist[0])
# 取出最后一个元素
print(mylist[-1])
# 查找31,的下表位置
print(mylist.index(31))
1.7.10 Passagem de lista
- For loop para percorrer dados
# list的遍历
mylist=[21, 25, 21, 23, 22, 20, 31, 29, 33, 30]
# 遍历
for i in range(0, len(mylist)):
print(mylist[i])
1.7.11 Operações básicas de tuplas
1. índice, encontre a tabela abaixo. A tabela abaixo quando aparece pela primeira vez. Os subscritos começam em 0
2. count conta o número de ocorrências de uma tupla de dados
3. len, conta o número de elementos na tupla
# 元组的基本操作
dd=((1,2,3,),4,5,6,(7,8,9),4,8)
print(type(dd))
print(dd)
#index,查找下表。第一次出现时候的下表。下标从0开始的
print(dd.index(4))
# count统计某个元组数据出现的次数
print(dd.count(4))
# len,统计元组内元素的个数
print(len(dd))
4. Percurso de tuplas
A maneira dos loops for e while é consistente com a travessia de listas.
5. Tuplas são somente leitura e não podem ser modificadas
Modificação obrigatória.
6. Os dados da lista armazenados na tupla podem ser modificados
aa=(1,2,3,[4,5,6])
print(aa)
aa[-1][0]=111
print(aa)
resumo
1.7.12 O caso das tuplas
escreva o código você mesmo
1.7.13 Operação básica de str
1.método index, obtém o valor do índice do elemento especificado
# index,获取某个元素第一次出现的索引
print('index,获取某个元素第一次出现的索引',s.index('o'))
2. O método replace, a essência é obter uma nova string, porque a própria string não pode ser modificada
- O primeiro parâmetro é a string a ser modificada
- O segundo parâmetro é o resultado modificado
# replace方法,实质是得到一个新的字符串,因为字符串本身是不允许修改的
print('replace方法,实质是得到一个新的字符串,因为字符串本身是不允许修改的',s.replace('zhangsan','张三'))
3. método split, string dividida
# split方法,分割字符串的
x='hello,world,hi,zhangsan'
print(x.split(','))
print(type(x.split(',')))
4. Conte o número de ocorrências de um caractere em uma string, conte
# 统计字符串中某个字符出现的次数,count
print(x.count('h'))
5. O comprimento da string estatística, len
# 统计字符串的长度,len
print(len(xx))
6. tira()
Semelhante ao trim em Java, preste atenção ao passar parâmetros
- Quando nenhum parâmetro é passado, os espaços iniciais e finais são removidos
- Pode ser realizado ao passar em parâmetros
1) Nenhum parâmetro é passado em
# 去掉字符串头和尾的空格
x=" hi zhangsan "
print(x)
xx=x.strip()
print(xx)
2) Passe nos parâmetros
- Preste atenção ao diagrama de efeitos da realização
# 去除指定的字符串,包含字串啊!!!
x="12hi 12 zhangsan21"
print(x)
xx=x.strip("12")
print(xx)
xx
resumo
Características das cordas
1.7.14 Operação de divisão do contêiner de dados
1. Definição de sequência
2. Fatiamento de sequência
- Obter o resultado de uma sequência menor de uma sequência maior
3. Método
- fatia para a frente
O tamanho da etapa padrão é 1 e a subcoleção obtida é do mesmo tipo de dados que a original.
# list切片
mylist=[0,1,2,3,4,5,6,7,8,9,10]
print(f"mylist,{mylist}")
# 三个参数写两个,默认的步长就是1。包含头但是不包含尾的
re=mylist[1:4]
print(f"mylist[1:4]结果为,{re}")
# 元组
# 得到的结果还是本身的数据类型
tu=(0,1,2,3,4,5,6,7,8,9,10)
re=tu[1:4]
print(f"tu[1:4]结果为,{re}")
# 字符串
s="123456789"
re=s[1:4]
print(f"s[1:4]结果为,{re}")
- fatia reversa
# 反向切片的时候需要从大的开始,然后从小的进行结束,并且步长指定为-1
# list切片
mylist=[0,1,2,3,4,5,6,7,8,9,10]
print(f"mylist,{mylist}")
# 三个参数写两个,默认的步长就是1。包含头但是不包含尾的
re=mylist[::-1] #相当于把序列进行了反转的操作
print(f"mylist[::-1]结果为,{re}")
re=mylist[3:1:-1] #相当于把序列进行了反转的操作
print(f"mylist[3:1:-1]结果为,{re}")
# 元组
# 得到的结果还是本身的数据类型
tu=(0,1,2,3,4,5,6,7,8,9,10)
re=tu[3:1:-1]
print(f"tu[3:1:-1]结果为,{re}")
# 字符串
s="123456789"
re=s[3:1:-1]
print(f"s[3:1:-1]结果为,{re}")
resumo
1.7.15 Operações comuns em dicionários
Se houver, será atualizado, caso contrário, será adicionado
1. Adicionar
2. Atualizar elementos
3.pop remove o elemento com a chave especificada
4.clear limpa todos os elementos
# 字典的操作
stu={
"name":"张三",
"age":18,
"sex":"男",
"score":{
"a":99,
"b":89,
"c":18
}
}
print(stu)
# 新增
stu['phone']='121212112'
print(stu)
# 修改
stu['sex']="女"
print(stu)
# 元素删除
stu.pop("sex")
print(stu)
# 全部删除
stu.clear()
print(stu)
5. Pegue todas as chaves
- Útil: você pode percorrer o dicionário
# 获取全部的key
print(stu.keys())
6. Método de travessia do dicionário 1 - percorra todos os elementos do dicionário de acordo com todas as chaves
# 字典的遍历1
keys =stu.keys()
for key in keys:
print('打印字典中的元素:',stu[key])
7. Executar diretamente um loop for no dicionário
- Observe que cada vez que você obtém o valor da chave, precisa obter o valor do elemento separadamente
- Ainda não é possível executar um loop while, e o método for loop é recomendado
# 字典的遍历方式2-直接进行遍历的方式
for i in stu:
print("直接遍历:",stu[i])
8. Conte o número de elementos no dicionário
resumo
1.7.16 Comparação de Contêineres de Dados
1.7.17 Operações comuns para contêineres de dados
1. Operações comuns
2. Convertido
Na verdade, o conteúdo continua o mesmo, mas os símbolos que o representam mudaram.
3. Operação de classificação
# 公用操作
l=[1,78,2,39,88,3,22]
print(l)
# 默认从小到大,字典排序的是key,排序后的结果放到list中
print(sorted(l))
# 从大到小,reverse=True表示反向排序
print(sorted(l,reverse=True))
4. Resumo
1.7.18 Formas de Comparar Tamanhos de Strings
1. Como comparar o tamanho
- baseado na tabela ascii
- A essência é baseada na comparação de valores de código
2. Strings são comparadas em termos de bits
3. Caso
# 字符串的比较
print('ab'>'abc')
print('ab'<'abc')
4. Resumo