Python列表(list)、字典(dict)、字符串(string)基本操作小结


Posted in Python onNovember 28, 2014

创建列表

sample_list = ['a',1,('a','b')]

Python 列表操作
sample_list = ['a','b',0,1,3]

得到列表中的某一个值
value_start = sample_list[0]

end_value = sample_list[-1]

删除列表的第一个值
del sample_list[0]

在列表中插入一个值
sample_list[0:0] = ['sample value']

得到列表的长度
list_length = len(sample_list)

列表遍历
for element in sample_list:

    print 'element'
  
Python 列表高级操作/技巧

产生一个数值递增列表

num_inc_list = range(30)

#will return a list [0,1,2,...,29]

用某个固定值初始化列表
initial_value = 0

list_length = 5

sample_list = [ initial_value for i in range(10)]

sample_list = [initial_value]*list_length

# sample_list ==[0,0,0,0,0]

附:python内置类型

1、list:列表(即动态数组,C++标准库的vector,但可含不同类型的元素于一个list中)
a = ["I","you","he","she"]      #元素可为任何类型。

下标:按下标读写,就当作数组处理
以0开始,有负下标的使用
0第一个元素,-1最后一个元素,
-len第一个元素,len-1最后一个元素
取list的元素数量

len(list)   #list的长度。实际该方法是调用了此对象的__len__(self)方法。

创建连续的list
L = range(1,5)      #即 L=[1,2,3,4],不含最后一个元素

L = range(1, 10, 2) #即 L=[1, 3, 5, 7, 9]

list的方法
L.append(var)   #追加元素

L.insert(index,var)

L.pop(var)      #返回最后一个元素,并从list中删除之

L.remove(var)   #删除第一次出现的该元素

L.count(var)    #该元素在列表中出现的个数

L.index(var)    #该元素的位置,无则抛异常 

L.extend(list)  #追加list,即合并list到L上

L.sort()        #排序

L.reverse()     #倒序

list 操作符:,+,*,关键字del

a[1:]       #片段操作符,用于子list的提取

[1,2]+[3,4] #为[1,2,3,4]。同extend()

[2]*4       #为[2,2,2,2]

del L[1]    #删除指定下标的元素

del L[1:3]  #删除指定下标范围的元素

list的复制
L1 = L      #L1为L的别名,用C来说就是指针地址相同,对L1操作即对L操作。函数参数就是这样传递的

L1 = L[:]   #L1为L的克隆,即另一个拷贝。

      

list comprehension

   [ <expr1> for k in L if <expr2> ]
 

2、dictionary: 字典(即C++标准库的map)

dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}

每一个元素是pair,包含key、value两部分。key是Integer或string类型,value 是任意类型。
键是唯一的,字典只认最后一个赋的键值。

dictionary的方法

D.get(key, 0)       #同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常

D.has_key(key)      #有该键返回TRUE,否则FALSE

D.keys()            #返回字典键的列表

D.values()          #以列表的形式返回字典中的值,返回值的列表中可包含重复元素

D.items()           #将所有的字典项以列表方式返回,这些列表中的每一项都来自于(键,值),但是项在返回时并没有特殊的顺序        
D.update(dict2)     #增加合并字典

D.popitem()         #得到一个pair,并从字典中删除它。已空则抛异常

D.clear()           #清空字典,同del dict

D.copy()            #拷贝字典

D.cmp(dict1,dict2)  #比较字典,(优先级为元素个数、键大小、键值大小)

                    #第一个大返回1,小返回-1,一样返回0

            

dictionary的复制

dict1 = dict        #别名

dict2=dict.copy()   #克隆,即另一个拷贝。

3、tuple:元组(即常量数组)
tuple = ('a', 'b', 'c', 'd', 'e')

可以用list的 [],:操作符提取元素。就是不能直接修改元素。

4、string:     字符串(即不能修改的字符list)

str = "Hello My friend"

字符串是一个整体。如果你想直接修改字符串的某一部分,是不可能的。但我们能够读出字符串的某一部分。
子字符串的提取
str[:6]

字符串包含判断操作符:in,not in
"He" in str

"she" not in str

string模块,还提供了很多方法,如
S.find(substring, [start [,end]]) #可指范围查找子串,返回索引值,否则返回-1

S.rfind(substring,[start [,end]]) #反向查找

S.index(substring,[start [,end]]) #同find,只是找不到产生ValueError异常

S.rindex(substring,[start [,end]])#同上反向查找

S.count(substring,[start [,end]]) #返回找到子串的个数
S.lowercase()

S.capitalize()      #首字母大写

S.lower()           #转小写

S.upper()           #转大写

S.swapcase()        #大小写互换
S.split(str, ' ')   #将string转list,以空格切分

S.join(list, ' ')   #将list转string,以空格连接

处理字符串的内置函数
len(str)                #串长度

cmp("my friend", str)   #字符串比较。第一个大,返回1

max('abcxyz')           #寻找字符串中最大的字符

min('abcxyz')           #寻找字符串中最小的字符

string的转换
            

float(str) #变成浮点数,float("1e-1")  结果为0.1

int(str)        #变成整型,  int("12")  结果为12

int(str,base)   #变成base进制整型数,int("11",2) 结果为2

long(str)       #变成长整型,

long(str,base)  #变成base进制长整型,

字符串的格式化(注意其转义字符,大多如C语言的,略)
str_format % (参数列表) ?#参数列表是以tuple的形式定义的,即不可运行中改变
>>>print ""%s's height is %dcm" % ("My brother", 180)
          #结果显示为 My brother's height is 180cm

。。。。。。。。。。。。。。。。。。

list 和 tuple 的相互转化

tuple(ls)
list(ls)

Python 相关文章推荐
Python中字典创建、遍历、添加等实用操作技巧合集
Jun 02 Python
Python用模块pytz来转换时区
Aug 19 Python
Python实现冒泡排序的简单应用示例
Dec 11 Python
对Python中DataFrame选择某列值为XX的行实例详解
Jan 29 Python
python双向链表原理与实现方法详解
Dec 03 Python
基于python3生成标签云代码解析
Feb 18 Python
自定义Django默认的sitemap站点地图样式
Mar 04 Python
Jupyter Notebook的连接密码 token查询方式
Apr 21 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
May 15 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
May 22 Python
Python urllib request模块发送请求实现过程解析
Dec 10 Python
Python selenium的这三种等待方式一定要会!
Jun 10 Python
跟老齐学Python之使用Python查询更新数据库
Nov 25 #Python
跟老齐学Python之使用Python操作数据库(1)
Nov 25 #Python
Python标准库os.path包、glob包使用实例
Nov 25 #Python
PHP魔术方法__ISSET、__UNSET使用实例
Nov 25 #Python
Python标准库之多进程(multiprocessing包)介绍
Nov 25 #Python
Python标准库之随机数 (math包、random包)介绍
Nov 25 #Python
Python标准库之循环器(itertools)介绍
Nov 25 #Python
You might like
wordpress之wp-settings.php
2007/08/17 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
php+ajax实现文章自动保存的方法
2014/12/30 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
多个iframe自动调整大小的问题
2006/09/18 Javascript
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
js实现简单的验证码
2015/12/25 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
Rollup处理并打包JS文件项目实例代码
2018/05/31 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
Python实现针对含中文字符串的截取功能示例
2017/09/22 Python
Python函数参数操作详解
2018/08/03 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
重构Python代码的六个实例
2020/11/25 Python
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
建设投标担保书
2014/05/13 职场文书
病人家属写给医院的感谢信
2015/01/23 职场文书
婚育证明格式
2015/06/17 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书
深入浅析Redis 集群伸缩原理
2021/05/15 Redis
pytorch中的model=model.to(device)使用说明
2021/05/24 Python
Python&Matlab实现樱花的绘制
2022/04/07 Python