pythontuple遍历
1. python tuple怎么循环
和list一样的处理方式,只要不修改
2. Python 如何遍历服务器上所有同一类型的文件
例如:在C:\TDDOWNLOAD目录下有a.txt、b.txt两个文件,另有\sub1子文件夹,C:\TDDOWNLOAD\sub1下又有c.txt、d.txt两个文件。
1. os.walk
os.walk()返回一个三元素的tuple:当前路径、子文件夹名称、文件列表。
>>> import os
>>> def fun( path ):
... for root, dirs, files in os.walk( path ):
... for fn in files:
... print root, fn
...
>>> fun( r'C:\TDDOWNLOAD' )
C:\TDDOWNLOAD a.txt
C:\TDDOWNLOAD b.txt
C:\TDDOWNLOAD\sub1 c.txt
C:\TDDOWNLOAD\sub1 d.txt
>>>
2. glob.glob
glob.glob()只接受一个参数,这个参数既代有路径,又代有匹配模式,返回值为一个列表。注意,glob.glob()无法直接穿透子文件夹,需要自己处理:
>>> def fun( path ):
... for fn in glob.glob( path + os.sep + '*' ): # '*'代表匹配所有文件
... if os.path.isdir( fn ): # 如果结果为文件夹
... fun( fn ) # 递归
... else:
... print fn
...
>>> fun( r'C:\TDDOWNLOAD' )
C:\TDDOWNLOAD\a.txt
C:\TDDOWNLOAD\b.txt
C:\TDDOWNLOAD\sub1\c.txt
C:\TDDOWNLOAD\sub1\d.txt
>>>
'*'为匹配模式,代表匹配所有文件,只有这样才能将子文件夹查出来,以便递归深入,探查下一层的文件。
3. Python中内置数据类型list,tuple,dict,set的区别和用法
python 中list,tuple,dict,set是最常用的集合类型。
list列表,相当于一个数组,不过list的长度是自动变化的而且列表元素自由的,不必每个元素都是同一种类型。它的简洁的定义方式是a=[]。有序组合
tuple也是一个组合。不过tuple在定义好之后就不能再变化。它的简洁的定义方式是a=1,3也可以是a=(1,3).有序组合。
dict是字典类型。也就是键值对类型。键名不可以重复,并且不可以变化(字符串就符合这个要求,常用字符串作为键名)。它的简洁的定义方式是a={}.无序组合(意思就是你无法按照添加的顺序对他进行遍历)。
set是set类型(不好翻译,用的也少)。也是一个无序的组合,元素是互斥的,也就不会出现相同的元素。可以把一个序列转换成无重复元素的set.无序组合。
以下是使用的示例代码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
a_tuple=(1,3423,'34')
a_list=[12,12.34,'sds']
a_dict={'key1':1,'key2':2}
a_set=set('2323')
for t in a_tuple:
print('%s in tuple'%t)
print('*'*10)
for l in a_list:
print('%s in list'%l)
print('*'*10)
for k,v in a_dict.items():
print('key=%s,value=%s in dict'%(k,v))
print('*'*10)
for s in a_set:
print('%s in set'%s)
print('*'*10)
4. python 字典和元组遍历速度哪个快
当然是元组了,元组就相当于数组,直接按照索引去取元素。而字典是按照key去取元素(类似于hash表),速度当然比不上元组了。下面的测试可以提供一些直观的感觉。
$python-mtimeit-s'a=dict(a=12,b=13,c=14)''fork,vina.items():''pass'
1000000loops,bestof3:0.391usecperloop
$python-mtimeit-s'a=(12,13,14)''forvina:''pass'
10000000loops,bestof3:0.12usecperloop
可以看到遍历同样是三个元素的dict的时间大致上是tuple的3倍左右。 (实际上这个时间包括了创建 dict 和 tuple 的时间,创建dict的时间也是要大于创建tuple的时间的,这里就不细分了,总之,dict的创建、访问时间一定是大于tuple的)
但是在python中,dict是做过极度优化的,其效率已经非常高了,因为在python中它的使用实在是太广了。所以在实际编程中,一般我们只根据实际需求来考虑使用什么数据结构 (dict, list, set, tuple),而不是根据不同数据结构的访问速度差别。
5. Python 中什么情况下要用到 tuple
Tuple 是不可变 list。 一旦创建了一个 tuple 就不能以任何方式改变它。
Tuple 与 list 的相同之处
定义 tuple 与定义 list 的方式相同, 除了整个元素集是用小括号包围的而不是方括号。
Tuple 的元素与 list 一样按定义的次序进行排序。 Tuples 的索引与 list 一样从 0 开始, 所以一个非空 tuple 的第一个元素总是 t[0]。
负数索引与 list 一样从 tuple 的尾部开始计数。
与 list 一样分片 (slice) 也可以使用。注意当分割一个 list 时, 会得到一个新的 list ;当分割一个 tuple 时, 会得到一个新的 tuple。
Tuple 不存在的方法
您不能向 tuple 增加元素。Tuple 没有 append 或 extend 方法。
您不能从 tuple 删除元素。Tuple 没有 remove 或 pop 方法。
您不能在 tuple 中查找元素。Tuple 没有 index 方法。
然而, 您可以使用 in 来查看一个元素是否存在于 tuple 中。
用 Tuple 的好处
Tuple 比 list 操作速度快。如果您定义了一个值的常量集,并且唯一要用它做的是不断地遍历它,请使用 tuple 代替 list。
如果对不需要修改的数据进行 “写保护”,可以使代码更安全。使用 tuple 而不是 list 如同拥有一个隐含的 assert 语句,说明这一数据是常量。如果必须要改变这些值,则需要执行 tuple 到 list 的转换。
Tuple 与 list 的转换
Tuple 可以转换成 list,反之亦然。内置的 tuple 函数接收一个 list,并返回一个有着相同元素的 tuple。而 list 函数接收一个 tuple 返回一个 list。从效果上看,tuple 冻结一个 list,而 list 解冻一个 tuple。
Tuple 的其他应用
一次赋多值
>>> v = ('a', 'b', 'e')
>>> (x, y, z) = v
解释:v 是一个三元素的 tuple, 并且 (x, y, z) 是一个三变量的 tuple。将一个 tuple 赋值给另一个 tuple, 会按顺序将 v 的每个值赋值给每个变量。
6. python 多元tuple怎样for循环
与其它大多数语言一样,Python 也拥有 for 循环。你到现在还未曾看到它们的唯一原因就是,Python
在其它太多的方面表现出色,通常你不需要它们。
其它大多数语言没有像 Python 一样的强大的 list
数据类型,所以你需要亲自做很多事情,指定开始,结束和步长,来定义一定范围的整数或字符或其它可重复的实体。但是在 Python 中,for
循环简单地在一个列表上循环,与 list 解析的工作方式相同。
1. for 循环介绍
复制代码
代码如下:
>>> li = ['a', 'b',
'e']
>>> for s in li: (1)
... print s
(2)
a
e
>>> print "\n".join(li)
(3)
a
e
(1) for 循环的语法同 list 解析相似。li 是一个 list,而 s 将从第一个元素开始依次接收每个元素的值。
(2) 像 if
语句或其它任意缩进块,for 循环可以包含任意数目的代码行。
(3) 这就是你以前没看到过 for
循环的原因:至今我们都不需要它。太令人吃惊了,当你想要的只是一个 join 或是 list 解析时,在其它语言中常常需要使用 for 循环。
要做一个 “通常的” (Visual Basic 标准的) 计数 for 循环也非常简单。
2. 简单计数
复制代码
代码如下:
>>> for i in range(5):
(1)
... print i
>>> li = ['a', 'b',
'c', 'd', 'e']
>>> for i in range(len(li)): (2)
- 104 -Dive
Into Python http://diveintopython.org/
... print
li[i]
(1) range 生成一个整数的 list,通过它来控制循环。我知道它看上去有些奇怪,但是它对计数循环偶尔 (我只是说偶尔) 会有用
。
(2) 我们从来没这么用过。这是 Visual Basic 的思维风格。摆脱它吧。正确遍历 list 的方法是前面的例子所展示的。
7. 如何在python中实现循环指定次数
python中实现循环指定次数:
count=0
for item in list:
print item
count +=1 if count % 10 == 0:
print 'did ten'
或:
for count in range(0,len(list)):
print list[count] if count % 10 == 0:
print 'did ten'
在Python的for循环里,循环遍历可以写成:
for item in list:
print item
(7)pythontuple遍历扩展阅读:
Python 注意事项:
1、tuple:元组
(1)元组一旦初始化就不可修改。不可修改意味着tuple更安全。如果可能,能用tuple代替list就尽量用tuple。
(2)定义只有一个元素的tuple的正确姿势:t = (1,),括号内添加一个逗号,否则会存在歧义。
2、dict:字典
a.获取value值:dict['key'],若key不存在,编译器就会报错KeyError。避免方法:
一是通过 in 判断 key 值是否在dict中:
'key' in dict # 返回True 或 False。
二是通过 dict 的函数get():
dict.get('key') # 返回 value 值 或 None。
8. Python中如何遍历指定目录下的所有文件
例如:在C:\TDDOWNLOAD目录下有a.txt、b.txt两个文件,另有\sub1子文件夹,C:\TDDOWNLOAD\sub1下又有c.txt、d.txt两个文件。 1. os.walk os.walk()返回一个三元素的tuple:当前路径、子文件夹名称、文件列表。>>> import os>>> def fun( path ):... for root, dirs, files in os.walk( path ):... for fn in files:... print root, fn... >>> fun( r'C:\TDDOWNLOAD' )C:\TDDOWNLOAD a.txtC:\TDDOWNLOAD b.txtC:\TDDOWNLOAD\sub1 c.txtC:\TDDOWNLOAD\sub1 d.txt>>> 2. glob.glob glob.glob()只接受一个参数,这个参数既代有路径,又代有匹配模式,返回值为一个列表。注意,glob.glob()无法直接穿透子文件夹,需要自己处理:>>> def fun( path ):... for fn in glob.glob( path + os.sep + '*' ): # '*'代表匹配所有文件... if os.path.isdir( fn ): # 如果结果为文件夹... fun( fn ) # 递归... else:... print fn... >>> fun( r'C:\TDDOWNLOAD' )C:\TDDOWNLOAD\a.txtC:\TDDOWNLOAD\b.txtC:\TDDOWNLOAD\sub1\c.txtC:\TDDOWNLOAD\sub1\d.txt>>> '*'为匹配模式,代表匹配所有文件,只有这样才能将子文件夹查出来,以便递归深入,探查下一层的文件。
9. Python中list,tuple,dict,set的区别和用法
python 中list,tuple,dict,set是最常用的集合类型。
list列表,相当于一个数组,不过list的长度是自动变化的而且列表元素自由的,不必每个元素都是同一种类型。它的简洁的定义方式是a=[]。有序组合
tuple也是一个组合。不过tuple在定义好之后就不能再变化。它的简洁的定义方式是a=1,3也可以是a=(1,3).有序组合。
dict是字典类型。也就是键值对类型。键名不可以重复,并且不可以变化(字符串就符合这个要求,常用字符串作为键名)。它的简洁的定义方式是a={}.无序组合(意思就是你无法按照添加的顺序对他进行遍历)。
set是set类型(不好翻译,用的也少)。也是一个无序的组合,元素是互斥的,也就不会出现相同的元素。可以把一个序列转换成无重复元素的set.无序组合。
10. Python中,tuple的优势是什么
一、首先,看看三者最基本的区别:
List是顺序的,可变的。
Dictrionary是无顺序的,可变的。Dictionary是内置数据类型之一,它定义了键和值之间一对一的关系。每一个元素都是一个 key-value 对, 整个元素集合用大括号括起来。
Tuple 是顺序的,不可变 list。 一旦创建了一个 tuple 就不能以任何方式改变它。
定义 tuple 与定义 list 的方式相同, 除了整个元素集是用小括号包围的而不是方括号
你说的对,Tuple 是不可变 list。 一旦创建了一个 tuple 就不能以任何方式改变它。
二、Tuple 与 list 的相同之处
定义 tuple 与定义 list 的方式相同, 除了整个元素集是用小括号包围的而不是方括号。
Tuple 的元素与 list 一样按定义的次序进行排序。 Tuples 的索引与 list 一样从 0 开始, 所以一个非空 tuple 的第一个元素总是t[0]。
负数索引与 list 一样从 tuple 的尾部开始计数。
与 list 一样分片 (slice) 也可以使用。注意当分割一个 list 时, 会得到一个新的 list ;当分割一个 tuple 时, 会得到一个新的 tuple。
三、Tuple 不存在的方法
您不能向 tuple 增加元素。Tuple 没有 append 或 extend 方法。
您不能从 tuple 删除元素。Tuple 没有 remove 或 pop 方法。
您不能在 tuple 中查找元素。Tuple 没有 index 方法。
然而, 您可以使用 in 来查看一个元素是否存在于 tuple 中。
四、用 Tuple 的好处
Tuple 比 list 操作速度快。如果您定义了一个值的常量集,并且唯一要用它做的是不断地遍历它,请使用 tuple 代替 list。
如果对不需要修改的数据进行 “写保护”,可以使代码更安全。使用 tuple 而不是 list 如同拥有一个隐含的 assert 语句,说明这一数据是常量。如果必须要改变这些值,则需要执行 tuple 到 list 的转换。
五、Tuple 与 list 的转换
Tuple 可以转换成 list,反之亦然。内置的 tuple 函数接收一个 list,并返回一个有着相同元素的 tuple
而 list 函数接收一个 tuple 返回一个 list。从效果上看,tuple 冻结一个 list,而 list 解冻一个 tuple。
六、Tuple 的其他应用
一次赋多值
>>> v = ('a', 'b', 'e')
>>> (x, y, z) = v