`

Python:数组、列表(list)、字典(dict)、字符串(string)常用基本操作小结

 
阅读更多
连接 list 与分割字符串http://woodpecker.org.cn/diveintopython/native_data_types/joining_lists.html
连接 list 与分割字符串
3.7.1. 字符串方法的历史注解
您有了一个形如 key=value 的 key-value 对 list,并且想将它们合成为单个字符串。为了将任意包含字符串的 list 连接成单个字符串,可以使用字符串对象的 join 方法。
下面是一个在 buildConnectionString 函数中连接 list 的例子:
   
return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

在我们继续之前有一个有趣的地方。我一直在重复函数是对象,字符串是对象,每个东西都是对象的概念。您也许认为我的意思是说字符串值 是对象。但是不对,仔细地看一下这个例子,您将会看到字符串 ";" 本身就是一个对象,您在调用它的 join 方法。

总之,这里的 join 方法将 list 中的元素连接成单个字符串,每个元素用一个分号隔开。分隔符不必是一个分号;它甚至不必是单个字符。它可以是任何字符串。

小心
join 只能用于元素是字符串的 list;它不进行任何的强制类型转换。连接一个存在一个或多个非字符串元素的 list 将引发一个异常。
例 3.27. odbchelper.py 的输出结果
>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> ["%s=%s" % (k, v) for k, v in params.items()]
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> ";".join(["%s=%s" % (k, v) for k, v in params.items()])
'server=mpilgrim;uid=sa;database=master;pwd=secret'

上面的字符串是从 odbchelper 函数返回的,被调用块打印出来,这样就给出了您开始阅读本章时令人感到吃惊的输出结果。

您可能在想是否存在一个适当的方法来将字符串分割成一个 list。当然有,它叫做 split。

例 3.28. 分割字符串
>>> li = ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> s = ";".join(li)
>>> s
'server=mpilgrim;uid=sa;database=master;pwd=secret'
>>> s.split(";")    1
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> s.split(";", 1) 2
['server=mpilgrim', 'uid=sa;database=master;pwd=secret']

1 split 与 join 正好相反,它将一个字符串分割成多元素 list。注意,分隔符 (“;”) 被完全去掉了,它没有在返回的 list 中的任意元素中出现。
2 split 接受一个可选的第二个参数,它是要分割的次数。(“哦,可选参数……”,您将会在下一章中学会如何在您自己的函数中使用它。)
提示
anystring.split(delimiter, 1) 是一个有用的技术,在您想要搜索一个子串,然后分别处理字符前半部分 (即 list 中第一个元素) 和后半部分 (即 list 中第二个元素) 时,使用这个技术。


Python:数组、队列及堆栈的使用(list用法)
http://www.17jo.com/program/python/base/ListUse.html
Python编程中数组、队列及堆栈用于保存一组数据或对象的序列,元素可以是各种类型混合在一起,定义格式为[元素,元素,……,元素],用变量[位置]即可取出相应的元素,其中“位置”是从零开始计算。

数组表示一组序列集,元素可以在相应的位置存取。

# 例1:使用数组
array = [1,2,3,'hello',5]	# 定义五个元素的数组
print array[0]		# 输出位置0元素
>> 1
pos = 3
print array[pos]		# 输出位置3元素
>> hello

队列是一组以排队的形式先进先出的序列集,定义方法和数组是一致的,使用的函数也均可在数组或堆栈中使用。

# 例2:使用队列
alist = [1,2,3,4]		# 建立队列
alist.append[5] 		# 队尾添加元素5
alist.append['hello']	# 添加元素hello
print len(alist)		# 输出队列alist的长度
>> 6
alist.pop(0)		# 弹出首元素 1
alist.remove('hello')	# 移除元素'hello'
alist.insert(0,'Python')	# 在位置0插入元素'Python'
print alist.index('Python')	# 获得元素'Python'所在的位置
>> 0
alist.sort() 		# 将alist顺序排序
alist.sort(None,None,True) # 将alist倒序排序
alist.reverse()		# 将alist翻转
print alist
>> [2,3,4,5,'Python']
blist = [6,7,8]
alist.extend(blist) 	# 扩展队列alist
print alist
>> 2,3,4,5,'Python',6,7,8	# 输出结果

堆栈是一组指定义方式与定义数组队列一致。

# 例3:使用堆栈
alist = [2,2,3,4,5]	# 建立堆栈
alist.count(2)		# 统计2的个数
>> 2
alist.append[6] 		# 压入元素6
alist.pop()		# 弹出元素6


Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
http://blog.csdn.net/business122/article/details/7536991
创建列表
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列表(list)、字典(dict)、字符串(string)基本操作小结

    Python 列表操作 复制代码 代码如下: sample_list = [‘a’,’b’,0,1,3] 得到列表中的某一个值 复制代码 代码如下: value_start = sample_list[0] end_value = sample_list[-1] 删除列表的第一个值 复制代码 代码...

    测量程序编制 - python 15数据类型:String(字符串)-字符串常用函数.pptx

    在Python编程语言中,字符串(String)是一种基本的数据类型,用于存储和处理文本信息。字符串有多种操作和函数,本篇文章将详细讲解其中的一些常用函数,包括类型转换、获取字符串长度、执行字符串表达式以及字符串的...

    172460683333#123#Python 列表(list)、字典(dict)、字符串(string)常用操作1

    1、list:列表(即动态数组,C++标准库的vector,但可含不同类型的元素于一个list中) 3、tuple:元组(即常量数组) 4、string: 字符

    第04节课-字符串、字典、列表.zip

    在Python编程语言中,字符串、字典和列表是三种非常重要的数据结构,它们各自具有独特的特性和用途。在本课程中,我们将深入探讨这三种数据结构,并通过视频资源进行实践学习。 首先,让我们来了解字符串(String)...

    核心基础-拼接字符串、列表和字典-Python实例源码.zip

    在Python编程语言中,字符串、列表和字典是三种非常重要的数据类型,它们在各种应用场景中都有着广泛的应用,包括自动化处理、数据分析、游戏开发和网络爬虫等。本压缩包包含了一系列关于如何拼接这些数据类型的实例...

    老男孩 Python 自动化开发 02 Python数据结构 列表 元组 字典 集合 共16页.pptx

    \n\n**列表(List)**\n列表是Python中最常用的数据结构,可以存储任意类型的对象,如整数、浮点数、字符串甚至是其他列表。列表是可变的,这意味着我们可以添加、删除或修改其中的元素。列表方法包括但不限于:\n- `...

    python字符串常用函数.pdf

    Python 字符串是 Python 语言中最基本的数据类型之一,字符串函数是处理字符串的各种操作。下面将详细介绍 Python 中的字符串常用函数。 1. replace(string, old, new[, maxsplit]):字符串的替换函数,把字符串中...

    学学Python_字符串10_字典的方法03 fromkeys方法

    在压缩包中的文件列表中,我们看到有多个与字符串和字典操作相关的文件,例如`stringMethod.py`、`dictionaryOperate.py`等。这些文件可能包含了更多的字符串和字典操作示例,包括但不限于字符串的格式化打印、操作...

    Web开发-如何解析JSON字符串-Python实例源码.zip

    `json.loads()`函数是解析JSON字符串的核心方法,它接收一个字符串参数,返回相应的Python数据结构,如字典、列表、数字、字符串等。 ```python json_string = '{"name": "John", "age": 30, "city": "New York"}...

    Python返回数组/List长度的实例

    列表是Python中最常用的数据结构之一,它可以存储任意类型的对象,包括数字、字符串甚至是其他列表。在Python中,获取列表或者数组的长度是非常简单直接的,只需要使用内置的`len()`函数。 `len()`函数是Python中的...

    python使用小技巧

    下面是六个Python小技巧,涵盖了字符串格式化、标题化、列表推导式、字符串合并、统计列表元素个数和合并字典等多方面的内容。 1. Python3.6以后版本格式化字符串的新方法 在Python3.6以后版本中,引入了新的字符...

    Python处理JSON.doc

    序列化时,Python的元组会被转换为JSON的数组,字符串、数字、列表、字典等简单类型会被直接映射。 2. **反序列化(Deserialization)**:反序列化则是将JSON格式的字符串转换回Python对象。`json`模块的`loads()`...

    Python常用单词.pdf

    * string:字符串类型,用于表示文本 * float:单精度浮点类型,用于表示小数 * bool:布尔类型,用于表示真假值 * type:类型,用于表示变量的数据类型 二、控制流 * if:如果语句,用于判断条件是否成立 * else...

    Python3中的列表,元组,字典,字符串相关知识小结

    在Python3中,数据结构是编程中不可或缺的一部分,其中列表(List)、元组(Tuple)、字典(Dictionary)和字符串(String)是最基本且常用的。这些数据结构各自具有独特的特性和用途,下面我们将深入探讨它们的创建、操作...

    java中jython操作把python数据类型转成java类型

    List&lt;String&gt; javaList = (List&lt;String&gt;) pythonList.__tojava__(List.class); ``` 这里,`__tojava__`方法将Python的list转换为Java的List。 2. Python Dict到Java Map: 类似地,Python的dict可以转换为Java的...

    python2.7 库参考 英文版

    文档不仅覆盖了内置函数、类型等基础知识,还包含了异常处理、字符串操作等多个方面,是学习和掌握Python 2.7的重要资源。 #### 二、内置函数 文档第二章详细介绍了Python 2.7中的内置函数。这些函数包括但不限于...

    基于python实现数组格式参数加密计算

    然后我们可以将这个列表转换为JSON格式的字符串。 ```python join_course_dicts = [] for key, value in join_course_data: parts = key.split('[') index = int(parts[1][:-1]) # 获取索引 sub_key = parts[2]...

    Python-JSONDecodingAlgorithm实现很方便的解析JSON格式数据

    在上述代码中,我们首先定义了一个JSON格式的字符串`json_string`,然后使用`json.loads()`将其转换为Python字典`python_dict`。 除了基本的数据类型,JSON还支持数组(在Python中对应列表)和null(在Python中对应...

Global site tag (gtag.js) - Google Analytics