列表

列表定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素

特性:

  1.可存放多个值

  2.可修改指定索引位置对应的值,可变

  3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序

创建列表:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
list_test1=['hello',12,'ok']
list_test2=list('abc')
list_test3=list(['hello',12,'ok'])
print(list_test1)
print(list_test2)
print(list_test3) 输出结果:
['hello', 12, 'ok']
['a', 'b', 'c']
['hello', 12, 'ok']

列表常用操作:

索引

list_test1=['hello',12,'ok',[14,19]]
print(list_test1.index('hello'))  #输出结果为:0
print(list_test1.index([14,19]))  #输出结果为:3
print(list_test1.index(19)) #该操作会报ValueError: 19 is not in list,因为index()只能索引一级元素,无法索引子列表的子元素

追加:从最后添加元素

list_test1=['hello',12,'ok',[14,19]]
list_test1.append(1994)
print(list_test1)
list_test1.append('txt')
print(list_test1) 输出结果:
['hello', 12, 'ok', [14, 19], 1994]
['hello', 12, 'ok', [14, 19], 1994, 'txt']

插入:指定位置添加元素

list_test1=['hello',12,'ok',[14,19]]
list_test1.insert(3,'exe')    #数字为索引位置,exe为插入的字符串
print(list_test1)
list_test1.insert(0,'txt')
print(list_test1) 输出结果:
['hello', 12, 'ok', 'exe', [14, 19]]
['txt', 'hello', 12, 'ok', 'exe', [14, 19]]

删除:

pop()不加索引默认是从最后一个元素删除

list_test1=['hello',12,'ok',[14,19]]
list_test1.pop()
print(list_test1)
list_test1.pop(0)
print(list_test1) 输出结果:
['hello', 12, 'ok']
[12, 'ok']

remove()从匹配的第一个开始删除

list_test1=['ok','hello','ok',12,'ok',[14,19]]
list_test1.remove('ok')
print(list_test1) 输出结果:
['hello', 'ok', 12, 'ok', [14, 19]]

长度:列表中一个元素算一个长度,conut()方法用于计算某个元素的个数

list_test1=['hello',12,'ok',[14,19]]
print(len(list_test1))
list_test1=['hello','ok',12,'ok',[14,19]]
print(list_test1.count('ok'))

切片

list_test1=['a','c','f',1,2,3,'2a','3b']
print(list_test1[5])
print(list_test1[3:5])
print(list_test1[1:6:2]) 输出结果:
3
[1, 2]
['c', 1, 3]

循环:通过索引遍历一个列表

l=[1,'a',3,[4,5]]
l_size=len(l)
for index in range(l_size):
value=l[index]
if type(value) is list:
for i in range(len(value)):
print(value[i])
else:
print(value) 输出结果:
1
a
3
4
5

包含:直接遍历一个列表

l=[1,'a',3,[4,5]]
for i in l:
x=i
if type(x) is int:
print(x)
else:
for a in x:
print(a) 输出结果:
1
a
3
4
5

拷贝

list_test1=['a','c','f']
list_test2=list_test1.copy()
print(list_test2) 输出结果
['a', 'c', 'f']

扩展:将另一个list的所有元素依次加到一个list中

list_test1=['a','c','f']
list_test1.extend([1,2,3])
print(list_test1) 输出结果
['a', 'c', 'f', 1, 2, 3]

清空:清除所有的元素

list_test1=['a','c','f']
list_test1.clear()
print(list_test1) 输出结果:
[]

反转

list_test1=['ok','hello','ok',12,'ok',[14,19]]
list_test1.reverse()
print(list_test1) 输出结果:
[[14, 19], 'ok', 12, 'ok', 'hello', 'ok']

排序:列表只能是纯字符串或者是纯数字

list_test1=['a','c','f']
print(list_test1)
list_test1.sort()
list_test1.sort(reverse=True)  #打开反转功能,即倒序
print(list_test1) 输出结果:
['a', 'c', 'f']
['f', 'c', 'a']

元组

元组定义:与列表类似,只不过[]改成()

特性

  1.可存放多个值

  2.不可变

  3.按照从左到右的顺序定义元组元素,下标从0开始顺序访问,有序

创建元组:

tuple_test1 = (11, 'aa', 3, 'bc', 'aa','aa')
tuple_test2 = tuple((11, 22, 33, 44, 55))
print(tuple_test1)
print(tuple_test2) 输出结果:
(11, 'aa', 3, 'bc', 'aa', 'aa')
(11, 22, 33, 44, 55)

元组常用操作:

元组的操作和列表的操作类似,但是由于元组是不可变类型,所以没有添加、删除、插入等操作方法

索引

tupel_test1=('hello',12,'ok',(14,19),['a','b'])
print(tupel_test1.index('hello'))  #输出结果为0
print(tupel_test1.index((14,19)))  #输出结果为3
print(tupel_test1.index(19)) #报错,同list一样,无法索引子元组的元素

切片

tupel_test1=('hello',12,'ok',(14,19),['a','b'])
print(tupel_test1[1])
print(tupel_test1[3][1])
print(tupel_test1[4][0]) 输出结果:
12
19
a

长度

tupel_test1=('hello','ok',12,'ok',(14,19),['a','b'])
print(tupel_test1.count('ok')) 输出结果:
2

循环

tuple_test1=('hello','ok',12,'ok',(14,19))
t_size=len(tuple_test1)
for index in range(t_size):
value=tuple_test1[index]
if type(value) is tuple:
for i in range(len(value)):
print(value[i])
else:
print(value) 输出结果
hello
ok
12
ok
14
19

包含

t=(1,'a',3,[4,5])
t_size=len(t)
for index in range(t_size):
value=t[index]
if type(value) is list:
for i in range(len(value)):
print(value[i])
else:
print(value) 输出结果:
1
a
3
4
5

字典

定义:{key1:value1,key2:value2},key-value结构,key必须可hash,即不可变类型

a=1
b='abc'
c=[1,2]
d=('a','b')
print(hash(a))
print(hash(b))
# hash(c)  #列表不可hash,会抛出一个TypeError错误
print(hash(d)) 输出结果
1
-5597926949654223802
4804482478488461503

特性:

  1.可存放多个值

  2.可修改指定key对应的值,可变

  3.无序,每次print顺序都不一样

创建字典:

person1 = {"name": "bob", 'age':18}
person2 = dict(name='alex', age=19)
person3 = dict({"name": "natasha", 'age':20})
person4 = dict((['name','bob'],['age',10]))
print(person1)
print(person2)
print(person3)
print(person4) 输出结果:
{'name': 'bob', 'age': 18}
{'name': 'alex', 'age': 19}
{'name': 'natasha', 'age': 20}
{'name': 'bob', 'age': 10}

转换成字典:值只能有一个

d5={}.fromkeys(['name','age'],None)
print(d5)
d6={}.fromkeys(['name','age'],['bob',18])
print(d6) 输出结果
{'name': None, 'age': None}
{'name': ['bob', 18], 'age': ['bob', 18]}

更新:有的覆盖,没有的添加,原有的保留

d={'name':'alex'}
d1={'name':'alexbb','age':15}
d.update(d1)
print(d) 输出结果
{'name': 'alexsb', 'age': 15}

转换元组:转换的类型并不是tuble类型,但是可以像tuple一样调用,如for i in d.items:

d={'x':1,'y':1}
print(d.items()) 输出结果
dict_items([('x', 1), ('y', 1)])

转换元组删除

d={'x':1,'y':1}
print(d.items())
d.popitem()
print(d.items()) 输出结果
dict_items([('x', 1), ('y', 1)])
dict_items([('x', 1)])

增加一个键值对:如果键已存在,则不添加不更新

d={'x':1,'y':1}
d.setdefault('x','')
print(d)
d.setdefault('x','')
print(d)
d.setdefault('k','aaa')
print(d) 输出结果
{'x': 1, 'y': 1}
{'x': 1, 'y': 1}
{'x': 1, 'y': 1, 'k': 'aaa'}

索引

person1 = {"name": "bob", 'age':18}
print(person1['name']) 输出结果
bob

新增

person1 = {"name": "bob", 'age':18}
person1['sex'] = 'male'
print(person1) 输出结果
{'name': 'bob', 'age': 18, 'sex': 'male'}

删除

person1 = {"name": "bob", 'age':18}
print(person1.pop('name'))
print(person1) 输出结果
bob
{'age': 18}

键、值、键值对

#列出包含的key和value
person1 = {"name": "bob", 'age':18}
print(person1.keys())
print(person1.values()) 输出结果
dict_keys(['name', 'age']) #数据类型为dict_keys
dict_values(['bob', 18]) #数据类型为dict_values #检测是否存在某一个key
print(person1.get('name'))
print(person1.get('abc')) 输出结果
bob
None #没有该key抛出None

循环

person1 = {"name": "bob", 'age':18, 'sex':'male'}
for x in person1.keys():
y = person1[x]
print(x,y) 输出结果:
name bob
age 18
sex male

长度

person1 = {"name": "bob", 'age':18}
print(len(person1)) 输出结果:
2

Python开发基础-Day3-列表、元组和字典的更多相关文章

  1. Python入门基础学习(列表/元组/字典/集合)

    Python基础学习笔记(二) 列表list---[ ](打了激素的数组,可以放入混合类型) list1 = [1,2,'请多指教',0.5] 公共的功能: len(list1) #/获取元素 lis ...

  2. Python—列表元组和字典

    Python-列表元组和字典 列表 元组 字典 列表: 列表是Python中的一种数据结构,他可以存储不同类型的数据.尽量存储同一种类型 列表索引是从0开始的,我们可以通过索引来访问列表的值. 列表的 ...

  3. python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍

    目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...

  4. python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍

    目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...

  5. python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍

    目录 python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍. 二丶列表,其它语言称为数组 1.列表的定义,以及语法 2.列表的使用,以及常用方法. 3.列表的常用操作 ...

  6. python的学习笔记01_4基础数据类型列表 元组 字典 集合 其他其他(for,enumerate,range)

    列表 定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性: 1.可存放多个值 2.可修改指定索引位置对应的值,可变 3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问 ...

  7. python开发基础作业02:三级菜单,使用字典dic及列表

    作业要求及提示:三级菜单 ''' 1.三级菜单 2.可依次进入各子菜单 3.菜单能够回到上一级 4.用到知识点:字典.列表.多层循环.函数 条件:基本  if  else 嵌套  if...if... ...

  8. python开发基础03-列表、元组、字典、集合操作方法汇总

    列表 创建列表: li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], ...

  9. python基础(五)列表,元组,集合

    列表 在python中是由数个有序的元素组成的数据结构,每一个元素对应一个index索引来隐式标注元素在列表中的位置.是python中最常用的一种数据类型.需要注意的是列表中可以有重复相同的数据. 列 ...

  10. python基础语法3 元组,字典,集合

    元组: ========================元组基本方法===========================用途:存储多个不同类型的值定义方式:用过小括号存储数据,数据与数据之间通过逗号 ...

随机推荐

  1. Item 4 ----通过私有构造器强化不可实例化的能力

    场景: 在创建工具类的时候,大部分是无需实例化的,实例化对它们没有意义.在这种情况下,创建的类,要确保它是不可以实例化的.   存在问题: 在创建不可实例化的类时,虽然没有定义构造器.但是,客户端在使 ...

  2. 代理设计模式iOS开发Demo(示例程序)源代码

        iOS程序源代码下载链接:03-代理设计模式.zip28.3 KB // main.m // //  main.m //  03-代理设计模式 // //  Created by apple ...

  3. 2018 Multi-University Training Contest 1-1002 -Balanced Sequence(括号匹配+贪心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6299 题目: 题意:t组数据,每组数据给你一个n表示给你n个括号串,这n个括号串之间进行组合,求能够匹 ...

  4. 解决java在对MySQL插入数据时出现乱码问题

    1.在连接数据库的时候请注意, 最使用连接连接数据库的时候,必须在后面追加上编码的设置:useUnicode=true&characterEncoding=UTF-8,如下图所示. 参考连接: ...

  5. bzoj 2165 DP

    首先如果不考虑数据范围的话,因为每一层都是等效的,所以我们可以用w[i][j][k]来表示在某一层的j位置,称作i次电梯到k位置,最多上升多少层,那么我们可以比较容易的写出转移,因为m十分大,i可能与 ...

  6. windows下安装python过程

    方法一:如果你的电脑没有安装python,推荐使用anaconda(自带python环境,同时自带各种第三方库,可以省去很多麻烦) 这里提供两个下载地址:1,.官网https://www.anacon ...

  7. 7.0docker镜像和仓库

    repository:镜像的仓库 registry :docker组件的仓库,docker镜像的存储服务 tag :镜像的标签 例:ubuntu:14.04  ubuntu:latest 删除镜像 d ...

  8. LINUX中断学习笔记【转】

    转自:http://blog.chinaunix.net/uid-14825809-id-2381330.html 1.中断的注册与释放: 在 , 实现中断注册接口: int request_irq( ...

  9. python实战===一键刷屏

    #当按键q的时候,自动输入 “大家好!”并回车键发送!from pynput import keyboard from pynput.keyboard import Key, Controller k ...

  10. ADO POST时出现“无法为更新定位行,一些值可能已在最后一次读取后已更改”问题的解决方法

    原因有这样几种: 1.在数据库设计时,为某些字段设置了默认值,在修改进行提交以后,数据库会自动修改对应字段的所有行的默认值,从而导致了数据库与数据集中数据的不一致,使ADOQuery无法对数据集进行定 ...