Python基础——原生数据类型(字典,列表,元组,字符串)
字典Dictionary
字典定义了键值对的1对1管理。
1、定义字典
请看下面的栗子,我们先创建了一个具有两个元素的字典,每对都是key:value的形式。
我们能通过key得到value,但是不能通过value得到key。
还可以通过get方法得到对应key的value。
d={'server':'mpilgrim','database':'master'}
d
{'database': 'master', 'server': 'mpilgrim'}
d['server']
'mpilgrim'
d['database']
'master'
d.get('server')
'mpilgrim'
2、修改字典
字典中的key是不能重复的,当添加一个新的value到对应的key时,将会抹除之前的value。
我们可以直接给字典指定一个key-value,直接赋值就好了,一个新的key可以添加到字典中。
随时可以给字典添加内容。
d['database']='pubs'
d
{'database': 'pubs', 'server': 'mpilgrim'}
d['uid']='sa'
d
{'database': 'pubs', 'server': 'mpilgrim', 'uid': 'sa'}
d.keys()
dict_keys(['server', 'database', 'uid'])
d.items()
dict_items([('server', 'mpilgrim'), ('database', 'pubs'), ('uid', 'sa')])
需要注意的是,字典是无序的,我们最后插入的key-value不一定在输出的时候排在最后。
另外,字典的key是大小写敏感的,请注意。
d={}
d['key']='value'
d['Key']='other value'
d
{'Key': 'other value', 'key': 'value'}
字典中的value的类型是不固定的,可以是字符串,整形或者其他类型。
d['retrycount']=3
d
{'Key': 'other value', 'key': 'value', 'retrycount': 3}
3、删除item
del命令可以删除字典中指定key的元素。
clear命令可以删除字典中的所有元素。
pop命令也可以删除指定元素。
del d['Key']
d
{'key': 'value', 'retrycount': 3}
d.clear()
d
{}
d['try']='hello'
d.pop('try')
d
{}
列表List
list是python的主力数据类型。
1、定义列表
列表中的定位,0是第一个。
定位为正的话,是正序的,从前向后数。
定位值为负的话,是逆序的,从后向前数。
li[-n]==li[len(li)-n]
li=['a','b','mpilgrim','z','example']
li
['a', 'b', 'mpilgrim', 'z', 'example']
li[0]
'a'
li[4]
'example'
li[-1]
'example'
li[-3]
'mpilgrim'
列表切片
指定前后位置的情况
li[1:3]#不包括最后一位
['b', 'mpilgrim']
li[1:-1]#不包括最后一位
['b', 'mpilgrim', 'z']
li[0:3]#不包括最后一位
['a', 'b', 'mpilgrim']
不指定前后位置,或者只指定一个位置
li[:3]#从第一位到第三,不包括坐标为3的元素
['a', 'b', 'mpilgrim']
li[3:]#从坐标为3的元素,直到最后一位
['z', 'example']
li[:]#不指定前后位置,默认选取所有元素
['a', 'b', 'mpilgrim', 'z', 'example']
2、给列表添加元素
append方法能添加一个元素到列表尾部。
insert方法可以在指定坐标处,添加一个元素。
extend可以在尾部添加一组元素,一个list。
li.append('new')
li
['a', 'b', 'mpilgrim', 'z', 'example', 'new', 'new']
li.insert(2,'new')
li
['a', 'b', 'new', 'new', 'mpilgrim', 'z', 'example', 'new', 'new']
li.extend(['two','elements'])
li
['a',
'b',
'new',
'new',
'mpilgrim',
'z',
'example',
'new',
'new',
'two',
'elements']
我们举例子说一下append和extend的区别。
T=['a','b','c']
T.extend(['d','e','f'])
T
['a', 'b', 'c', 'd', 'e', 'f']
len(T)
6
T=['a','b','c']
T.append(['d','e','f'])
T
['a', 'b', 'c', ['d', 'e', 'f']]
len(T)
4
3、搜索列表
index方法可以获取对应元素的坐标。
in方法可以判断列表中是否存在某个元素。
T
['a', 'b', 'c', ['d', 'e', 'f']]
T.index('a')
0
T.index('c')
2
'd' in T
False
4、删除元素
remove方法删除指定元素
pop方法,删除列表中最后一个元素
li=['a','b','new','baidu','two','new','element']
li
['a', 'b', 'new', 'baidu', 'two', 'new', 'element']
li.remove('baidu')
li
['a', 'b', 'new', 'two', 'new', 'element']
li.pop()
'element'
li
['a', 'b', 'new', 'two', 'new']
5、列表操作
li=['a','b','baidu']
li=li+['example','new']
li
['a', 'b', 'baidu', 'example', 'new']
li+=['two']
li
['a', 'b', 'baidu', 'example', 'new', 'two']
li=[1,2]*3
li
[1, 2, 1, 2, 1, 2]
一次指定多个变量值
v=('a','b','e')
(x,y,z)=v
x
'a'
y
'b'
z
'e'
(MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY)=range(7)
MONDAY
0
格式化字符串
Python支持将值格式化成字符串,我们简单的来讲一下。
%s可以表示字符串
%d可以表示数字
%f可以表示浮点数
k='uid'
v='sa'
"%s=%s" % (k,v)
'uid=sa'
uid='sa'
pwd='secret'
print(pwd+' is not a good password for '+uid)
secret is not a good password for sa
print('%s is not a good password for %s' %(pwd,uid))
secret is not a good password for sa
userCount=6
print('Users connected: %d' % (userCount))
Users connected: 6
print('Users connected: '+userCount)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-adf6ef102961> in <module>()
----> 1 print('Users connected: '+userCount)
TypeError: Can't convert 'int' object to str implicitly
print("Today's stock price: %f" % 50.4625)
Today's stock price: 50.462500
print("Today's stock price: %.2f" % 50.4625)
Today's stock price: 50.46
print("change since yesterday: %+.2f" % 1.5)#+号表示需要输出数字的符号
change since yesterday: +1.50
列表映射mapping list
这大概是python中最具有威力的特征了,可以对列表有很好的理解。
列表表达式
li=[1,9,8,4]
[ele*2 for ele in li]#输出一个新的列表,从旧的列表中得到元素
[2, 18, 16, 8]
params={'server':'mpilgrim','database':'master','uid':'sa','pwd':'secret'}
params.keys()#可以从字典中获取列表,或者相互转化
dict_keys(['uid', 'server', 'database', 'pwd'])
params.values()
dict_values(['sa', 'mpilgrim', 'master', 'secret'])
params.items()
dict_items([('uid', 'sa'), ('server', 'mpilgrim'), ('database', 'master'), ('pwd', 'secret')])
[k for k,v in params.items()]
['uid', 'server', 'database', 'pwd']
[v for k,v in params.items()]
['sa', 'mpilgrim', 'master', 'secret']
['%s=%s' % (k,v) for k,v in params.items()]
['uid=sa', 'server=mpilgrim', 'database=master', 'pwd=secret']
链接列表和分隔字符串
我们可以使用join命令很简单的将字符串链接起来,但是不能链接非字符串格式的内容。
使用split命令分隔字符串,又得到一个列表。
';'.join(['%s=%s' % (k,v) for k,v in params.items()])
'uid=sa;server=mpilgrim;database=master;pwd=secret'
s=';'.join(['%s=%s' % (k,v) for k,v in params.items()])
s.split(';')
['uid=sa', 'server=mpilgrim', 'database=master', 'pwd=secret']
元组这里我们没有讲,tuple和列表的形式差不多,但是元组一旦建立,则不能改变。
Python基础——原生数据类型(字典,列表,元组,字符串)的更多相关文章
- python基础一数据类型之列表
摘要: python基础一中写到列表,那么这篇主要讲列表. 1,定义列表 2,列表.元祖.字符串都属于序列,都可以用用索引和切片. 3,列表的方法 1,定义列表 list1 = ['a','b',1, ...
- python基础之数据类型之数字、字符串、列表
数据类型及内置方法 一.数字类型 整数型(int) 1.用途:年龄,号码等 2.定义:age = 10 age = int(10) x = int(’11’) int只能转换纯数字的字符串 3 ...
- Python基础(3) - 数据类型:3列表类型
Python 列表是序列对象,可包含任意的Python数据信息,如字符串.数字.列表.元组等.列表的数据是可变的,我们可通过对象方法对列表中的数据进行增加.修改.删除等操作.列表用[]包括起来的. 列 ...
- python教程1:Python基础之数据类型和变量、字符串和编码
视频链接:http://www.bilibili.com/video/av10730372/ 我是在Linux下玩python的,Linux下默认安装python,直接打个pyhon3就好了,pyth ...
- Python基础学习三 字典、元组
一.元组 元组,提示别人,这个值是不能被改变的,元组的定义方式是用(),小括号: 元组只有两个方法,那就是count和index mysql1 = ('127.0.0.1',3306,'my','ro ...
- Python基础(数据类型与变量、字符串和编码)
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # name = 200 # if name > 100: # print(name,'大于100' ...
- Python基础:1.数据类型(列表)
提示:python版本为2.7,windows系统 1.列表(List) List,是一个有序的集合,可以添加.删除其中的元素. >>> colors = ['red', 'oran ...
- python基础一数据类型之字典
摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...
- Python基础之数据类型
Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...
随机推荐
- tomcat下运行war包
例如你下的包名test.war直接放入webapps目录下,到bin目录下双击启动startup.bat,不要关掉tomcat控制台窗口,回到webapps下应该要看到自动解压出一个test的目录,如 ...
- Python sklearn 分类效果评估
https://blog.csdn.net/sinat_26917383/article/details/75199996
- nodejs 中使用shell脚本
虽然nodejs的require('child_process').execSync可以使用shell,但其实问题特别多.尤其是符号和语法冲突,可读性也很差,只能完成一些小规模的shell使用. co ...
- [elk]kibana搜索绘图
kibana绘图 好些日志入库了需要分析. 1,首先分析top10 url的table和柱状分布 2,其次想着分析下404所占比例,以及404所对应的url table. 3,最后分析一下请求总数. ...
- Linux高性能server编程——I/O复用
IO复用 I/O复用使得程序能同一时候监听多个文件描写叙述符.通常网络程序在下列情况下须要使用I/O复用技术: client程序要同一时候处理多个socket client程序要同一时候处理用户 ...
- MyEclipse中背景颜色的设定
设置代码编写区域背景色的方法: Window-->Preferences-->General-->Editors-->TextEditors-->在Appearance ...
- google_gflags使用
gflags是google开源的一个解析命令行参数的工具. 最简单的demo #include <iostream> #include <gflags/gflags.h> us ...
- makefile之shell函数
shell函数不同于除"wildcard"函数之外的其它函数.make可以使用它来和外部通信. 函数功能:函数"shell"所实现的功能和shell中的引用(` ...
- iOS9 3DTouch、ShortcutItem、Peek And Pop技术一览
[iOS]iOS9 3DTouch.ShortcutItem.Peek And Pop技术一览 3DTouch UITouch类里API的变化 iOS9中添加的属性 altitudeAngle 当 ...
- [JNA系列]Java调用Delphi编写的Dll之Delphi与JAVA基本数据类型对比
Delphi与JAVA基本数据类型对比 类型 Delphi关键字 JAVA关键字 字节 备注 范围 整型 Shortint byte 1 有符号8位 -128..127 Byte 1 无符号8位 0 ...