列表

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

特性:

  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. Asp.net Web Api 2 FORM Authentication Demo

    最近看了一点 web api 2方面的书,对认证都是简单介绍了下,所以我在这里做个简单Demo,本文主要是FORM Authentication,顺带把基本认证也讲了. Demo 一.FORM Aut ...

  2. Linux 中使用 dd 测试磁盘性能

    翻译自 : Linux I/O Performance Tests using dd 基本说明 dd 可以用来做简单的低级别复制文件. 这样做, 一般都是可一直直接访问设备文件. 需要说明的是, 错误 ...

  3. HDU 1234 开门人和关门人 (模拟)

    题目链接 Problem Description 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签  到.签离记录,请根据记录找出当天开门和关门的人.    Input ...

  4. yocto 离线编译

    使用yocto编译一个软件包时,一般会先在本地寻找下载好的源码包,如果不存在则根据配置从网络下载. 添加本地源码包 为了支持离线编译,添加一个包的配置文件后,需要在本地也准备好源码包. 可以先打开网络 ...

  5. 动态替换Linux核心函数的原理和实现

    转载:https://www.ibm.com/developerworks/cn/linux/l-knldebug/ 动态替换Linux核心函数的原理和实现 在调试Linux核心模块时,有时需要能够实 ...

  6. 移动端测试===Android内存管理: 理解App的PSS

    Android内存管理: 理解App的PSS 原文链接:http://www.littleeye.co/blog/2013/06/11/android-memory-management-unders ...

  7. Vim中的键映射【转】

    转自:http://www.cnblogs.com/softwaretesting/archive/2011/09/28/2194515.html http://www.pythonclub.org/ ...

  8. glom模块的使用(一)

    glom模块的使用 简单说下glom模块主要是处理结构化数据用的,安装简单pip install glom即可,下面就glom的方法参数做例子讲解. glom 和模块同名的glom方法使用方法: .g ...

  9. 对list对象进行排序

    List<LjlSevOrdersVO> list = ljlSevOrdersService.findSevForOrders(ljlSevOrdersVO); //查出所有是自愿者的订 ...

  10. MySQL取得某一范围随机数(MySQL随机数)

    若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)). 例如, 若要在7 到 12 的范围(包括7和12)内得到一个随 ...