python 变量、列表、元组、字典

1、python 变量赋值

2、ptython  列表

3、python 元组

4、python  字典

1、  Python变量赋值

    1.1变量的命名规则

变量名只能是 字母、数字或下划线的任意组合

变量名的第一个字符不能是数字

以下关键字不能声明为变量名

[ 'assert','and', 'as', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or',           'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

     1.2变量赋值的三种方式

             传统赋值:student = “kezi”

链式赋值: student= user = “kezi”

序列解包赋值: stuent,age = “kezi”,10

>>> student="kezi"
>>> print(student)
kezi
>>> student2=student
>>> print(student2)
kezi
>>> student="keke"
>>> print (student2)
kezi
>>> print(student)
keke

2、  python列表

列表是我们最常用的数据类型之一,是一个元素以逗号分割,以中括号包围的,有序的,可修改、存储、的序列。

例子:

>>> student=["zhangshan","liuliu","taotao","junjun","xixi"]
>>> student[1:4]
['liuliu', 'taotao', 'junjun']
>>> student[2:-1]
['taotao', 'junjun']
>>> student[2:-1]
['taotao', 'junjun']
>>> student[2:]
['taotao', 'junjun', 'xixi']
>>> student[0:2:]
['zhangshan', 'liuliu']
>>>

2.2列表的方法

列表的添加

append

追加,在列表的尾部加入指定的元素

extend

将指定序列的元素依次追加到列表的尾部

insert

将指定的元素插入到对应的索引位上,注意负索引

列表的查找

注 列表没有find方法

count

计数,返回要计数的元素在列表当中的个数

index

查找,从左往右返回查找到的第一个指定元素的索引,如果没有找到,报错

列表的排序

reverse

索引顺序倒序

sort

按照ascii码表顺序进行排序

列表的删除

 

 

pop

弹出,返回并删除指定索引位上的数据,默认-1

remove

从左往右删除一个指定的元素

del

删除是python内置功能,不是列表独有的

例子:

列表的添加

>>> student
['zhangshan', 'liuliu', 'taotao', 'junjun', 'xixi']
>>> student.insert(2,"honghonghong") #默认是从下标是0开始的,0,1,2,3,4,,,,
>>> student
['zhangshan', 'liuliu', 'honghonghong', 'taotao', 'junjun', 'xixi'] >>> student
['zhangshan', 'liuliu', 'honghonghong', 'taotao', 'junjun', 'xixi']
>>> student.append("haihaihai")
>>> student
['zhangshan', 'liuliu', 'honghonghong', 'taotao', 'junjun', 'xixi', 'haihaihai']
>>> student.extend("kaikaikai")
>>> student
['zhangshan', 'liuliu', 'honghonghong', 'taotao', 'junjun', 'xixi', 'haihaihai', 'k', 'a', 'i', 'k', 'a', 'i', 'k', 'a', 'i']

统计、查找

>>> student
['zhangshan', 'liuliu', 'honghonghong', 'taotao', 'junjun', 'xixi', 'haihaihai', 'k', 'a', 'i', 'k', 'a', 'i', 'k', 'a', 'i']
>>> student.count("k")
3

>>> student
   ['zhangshan', 'liuliu', 'honghonghong', 'taotao', 'junjun', 'xixi', 'haihaihai', 'a', 'k', 'a', 'i', 'k', 'a']
  >>> print (student.index("honghonghong"))
  2

删除

>>> student.remove("k")
>>> student
['zhangshan', 'liuliu', 'honghonghong', 'taotao', 'junjun', 'xixi', 'haihaihai', 'a', 'i', 'k', 'a', 'i', 'k', 'a', 'i']
>>> student.pop()
'i'
>>> student
['zhangshan', 'liuliu', 'honghonghong', 'taotao', 'junjun', 'xixi', 'haihaihai', 'a', 'i', 'k', 'a', 'i', 'k', 'a']
>>> del student[8]
>>> student
['zhangshan', 'liuliu', 'honghonghong', 'taotao', 'junjun', 'xixi', 'haihaihai', 'a', 'k', 'a', 'i', 'k', 'a']

注:列表中可以建立子列表。

浅copy

import copy
student=['zhangshan', 'liuliu', ['honghonghong', 'taotao'], 'junjun', 'xixi', 'haihaihai', 'a', 'k', 'a', 'i', 'k', 'a']
student1=copy.copy(student) print (student)
print(student1)
student[2][0]="kaikaikai"
print (student)
print(student1)

打印结果:

['zhangshan', 'liuliu', ['honghonghong', 'taotao'], 'junjun', 'xixi', 'haihaihai', 'a', 'k', 'a', 'i', 'k', 'a']
['zhangshan', 'liuliu', ['honghonghong', 'taotao'], 'junjun', 'xixi', 'haihaihai', 'a', 'k', 'a', 'i', 'k', 'a']
['zhangshan', 'liuliu', ['kaikaikai', 'taotao'], 'junjun', 'xixi', 'haihaihai', 'a', 'k', 'a', 'i', 'k', 'a']
['zhangshan', 'liuliu', ['kaikaikai', 'taotao'], 'junjun', 'xixi', 'haihaihai', 'a', 'k', 'a', 'i', 'k', 'a']

为什么改  student ,student1也在变呢,由于student与student1的第二层内存地址是指向了同一个内存地址。

深copy

import copy
student3=['zhangshan', 'liuliu', ['honghonghong', 'taotao'], 'junjun', 'xixi', 'haihaihai', 'a', 'k', 'a', 'i', 'k', 'a']
student4=copy.deepcopy(student3)
print (student3)
print(student4)
student3[2][0]="xinxinxin"
print (student3)
print(student4)
student4[2][0]="yunyunyun"
print (student3)
print(student4)

打印结果

['zhangshan', 'liuliu', ['honghonghong', 'taotao'], 'junjun', 'xixi', 'haihaihai', 'a', 'k', 'a', 'i', 'k', 'a']
['zhangshan', 'liuliu', ['honghonghong', 'taotao'], 'junjun', 'xixi', 'haihaihai', 'a', 'k', 'a', 'i', 'k', 'a']
['zhangshan', 'liuliu', ['xinxinxin', 'taotao'], 'junjun', 'xixi', 'haihaihai', 'a', 'k', 'a', 'i', 'k', 'a']
['zhangshan', 'liuliu', ['honghonghong', 'taotao'], 'junjun', 'xixi', 'haihaihai', 'a', 'k', 'a', 'i', 'k', 'a']
['zhangshan', 'liuliu', ['xinxinxin', 'taotao'], 'junjun', 'xixi', 'haihaihai', 'a', 'k', 'a', 'i', 'k', 'a']
['zhangshan', 'liuliu', ['yunyunyun', 'taotao'], 'junjun', 'xixi', 'haihaihai', 'a', 'k', 'a', 'i', 'k', 'a']

深 copy 存放地址不在同一个地方了,因此打印结果不一样。

3、python 元组

元组是元素以逗号分割,以小括号包围的有序的,不可修改的序列。

元组的特性:

(1)元组可以不加括号

(2)单元素元组需要加逗号

(3)元组不可修改,所以我们在配置文件当中多看到元组

元组的方法

元组的查找

index

从左往右返回第一个遇到的指定元素的索引,如果没有,报错

count

返回元组当中指定元素的个数

    

元组和字符串的区别

     (1)、  元组和字符串都是有序的,不可修改的序列

     (2)、  元组的元素可以是任何类型,字符串的元素只能是字符

     (3)、  元组的元素长度可以任意,字符串的元素长度只能为1

 4、python  字典

字典一种key - value 的数据类型

字典一个元素呈键值对的形式,以逗号分割,以大括号包围的无序的,可以修改的序列。

字典是python基础数据类型当中唯一一个映射关系的数据类型

字典的特点:

            因为字典是无序的,所以字典没有索引值,

            因为字典没有索引值,所以字典以键取值,(字典的键相当于列表的索引)

字典的方法:

字典的取值

keys

获取字典所有的键

values

获取字典所有的值

get

以键取值,如果指定键不存在,默认返回None,可以指定返回内容

update

更新指定键的内容,如果键不存在,创建

setdefault

设置默认,如果键存在,返回值,如果键不存在,创造键,值默认为None,值也可以自定义

items

返回字典键值呈元组形式的格式

字典的删除

pop

弹出,返回并删除指定键对应的值

popitem

随机弹出一个键值元组,这里随机的原因是因为字典无序

clear

清空字典

info={
"s001":"zhangsan" ,
"s002":"lisi",
"s003":"wangwu"
}
print(info)

打印结果
{'s003': 'wangwu', 's001': 'zhangsan', 's002': 'lisi'}

增加

info['s004']="wangmazi"
print(info)

打印结果
{'s004': 'wangmazi', 's002': 'lisi', 's001': 'zhangsan', 's003': 'wangwu'}

修改

info['s001']="huangda"
print(info)

打印结果

{'s003': 'wangwu', 's004': 'wangmazi', 's001': 'huangda', 's002': 'lisi'}

删除

info.pop("s004")
print(info)

打印结果
{'s001': 'huangda', 's002': 'lisi', 's003': 'wangwu'}

del info["s001"]
print(info)

打印结果

{'s002': 'lisi', 's003': 'wangwu'}

随机删除

info.popitem()  #随机删除
print(info)

打印结果
{'s003': 'wangwu'}

查找

info={
"s001":"zhangsan" ,
"s002":"lisi",
"s003":"wangwu"
}
print(info) print (info['s002'])
print(info["s004"])没有查到,要报错
print(info.get('s001'))如果没有查到,也不会报错
print("s003" in info) 标准用法

打印结果
lisi
print(info["s004"])
KeyError: 's004'   没有找到,报错

zhangsan
True

多级字典嵌套及操作

ddress1={"四川":["成都",'锦阳']
,"广东":["广州","佛山"]
,"湖南":["长沙","益阳"] }
print(address1["四川"][0]) 查找

address1["四川"][1]="德阳" #修改
print(address1)

打印结果
成都
{'四川': ['成都', '德阳'], '广东': ['广州', '佛山'], '湖南': ['长沙', '益阳']}

print(address1.values())
print(address1.keys())
address1.setdefault("直辖市","上海")
print(address1) #update
qita={"特区":"香港","福建":"厦门"}
address1.update(qita)
print(address1)
打印结果
dict_values([['成都', '德阳'], ['广州', '佛山'], ['长沙', '益阳']])
dict_keys(['四川', '广东', '湖南'])
{'四川': ['成都', '德阳'], '广东': ['广州', '佛山'], '湖南': ['长沙', '益阳'], '直辖市': '上海'}
{'直辖市': '上海', '特区': '香港', '四川': ['成都', '德阳'], '广东': ['广州', '佛山'], '湖南': ['长沙', '益阳'], '福建': '厦门'} print(address1.items())#转化为列表
打印结果
dict_items([('福建', '厦门'), ('特区', '香港'), ('直辖市', '上海'), ('广东', ['广州', '佛山']), ('四川', ['成都', '德阳']), ('湖南', ['长沙', '益阳'])]) bb=address1.fromkeys([6,7,9],"uuuu")
print(bb) cc=dict.fromkeys([1,2,3],[1,{"name":"kezi"},555])全部都修改了
print(cc) 打印结果
{9: 'uuuu', 6: 'uuuu', 7: 'uuuu'}
{1: [1, {'name': 'kezi'}, 555], 2: [1, {'name': 'kezi'}, 555], 3: [1, {'name': 'kezi'}, 555]} 循环
for i in address1:
print(i,address1[i])
打印结果
广东 ['广州', '佛山']
特区 香港
四川 ['成都', '德阳']
直辖市 上海
福建 厦门
湖南 ['长沙', '益阳'] for i in address1:
print(i) 打印结果 广东
特区
四川
直辖市
福建
湖南

数据类型的总结

      

 

str

list

tuple

dict

是否有序

是否可修改

方法多少

很多

一般

很少

较多   映射关系

 

python 变量、列表、元组、字典的更多相关文章

  1. **python中列表 元组 字典 集合

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...

  2. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

  3. Python之列表&元组&字典

    今天学习了Python的基本数据类型,做以下笔记,以备查用. 一.列表 列表的常用方法: 1.append()方法 def append(self, p_object): # real signatu ...

  4. Python学习-列表元组字典操作

    一.列表 列表是Python的基本数据类型之一,它是以 [] 括起来的,内部成员用逗号隔开.里面可以存放各种数据类型. # 例如: list2 = ['jason', 2, (1, 3), ['war ...

  5. python字符串/列表/元组/字典之间的相互转换(5)

    一.字符串str与列表list 1.字符串转列表 字符串转为列表list,可以使用str.split()方法,split方法是在字符串中对指定字符进行切片,并返回一个列表,示例代码如下: # !usr ...

  6. python 中列表 元组 字典 集合的区别

    先看图片解释 (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复 ...

  7. python字符串 列表 元组 字典相关操作函数总结

    1.字符串操作函数 find 在字符串中查找子串,找到首次出现的位置,返回下标,找不到返回-1 rfind 从右边查找 join 连接字符串数组 replace 用指定内容替换指定内容,可以指定次数 ...

  8. python基础-列表元组字典

    1.列表和元组 列表可以对数据实现最方便的存储.修改等操作 names=["Alex","tenglan","Eric","Rai ...

  9. 【python】列表&&元组&&字典

    列表:用“[]”包裹,可对值增删改. 列表遍历: 方法一: alist=["a","b","c","d","e ...

  10. python之列表/元组/字典/字符串

    一.列表 格式:list = ['xxx','xxx','xxx'] 性质:可以修改列表内容 copy用法: import copy names = ['] names01 = names #直接引用 ...

随机推荐

  1. 一个时序图描述从用户在浏览器地址栏输入url并按回车,到浏览器显示相关内容的各个过程

    其实考察的就是一次HTTP请求所经过的过程和Spring或者SpringMVC怎么调用dispatcherServlet的过程

  2. springcloud(十七):服务网关 Spring Cloud GateWay 熔断、限流、重试

    上篇文章介绍了 Gataway 和注册中心的使用,以及 Gataway 中 Filter 的基本使用,这篇文章我们将继续介绍 Filter 的一些常用功能. 修改请求路径的过滤器 StripPrefi ...

  3. iterator删除元素

    总结 在需要的删除等操作时,不能使用简单的foreach,因为其底层依然用的是Iterator,但是调用的是集合中的remove方法. 使用迭代器对象调用其中的remove方法,以保证线程同步.

  4. 总结 webpack 的插件

    模块化第一步  初始化 package.json 文件 node.js 指令 npm init npm的官网:https://www.npmjs.com/ 搜索插件名,查看插件的用法 1. webpa ...

  5. CentOS7 如何挂载网络设备

    CentOS 自动挂载网络设备的方法 手动挂载: [root@mysql ~]# mount -o username=USER,password=PASSWORD //192.168.10.212/z ...

  6. 八、RF的内置变量

    1.表示“空”的变量 ${EMPTY} 空 适用输入空的案例 2.表示“空格”的变量 ${SPACE} 空格,如果是需要5个空格可以这样写${SPACE*5} 3.目录的绝对路径 ${CURDIR} ...

  7. 解决保存快照失败后redis无法写入的问题( Redis is configured to save RDB snapshots)

    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Com ...

  8. rocketMQ 通信协议格式

    rocketMQ 使用 netty 通信,端对端的通信,为了避免粘包.分包,需要指定发送数据的边界. 使用的解码器是 LengthFieldBasedFrameDecoder // org.apach ...

  9. 测开之路一百五十二:基于jquery的ajax实现之load、get、ajax

    ajax除了用原生的js实现之外,也可以使用jquery实现,而且用jquery更方便 看一个简单的示例,保留上一篇的content路由和html,实现上一篇一样的功能,点击获取内容,局部刷新 准备一 ...

  10. node-webkit-updater——NW.js自动更新

    NW.js自动更新三种方案: 1)node-webkit-updater(推荐) 2)nwjs-autoupdater 3)nw-autoupdater NW.js自动更新三种方案:[http://d ...