Toggle navigation
Toggle navigation
This project
Loading...
Sign in
qingger
/
allProject
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
shipengfei
2017-03-04 12:26:52 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
56393d2095dad32b67ca3957f61d24e912ddc1d9
56393d20
1 parent
92a52df2
Add Docs
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
167 additions
and
0 deletions
Personal/Shipfi/Python/LearnDoc/list - 副本.md
Personal/Shipfi/Python/LearnDoc/list_tuple_dic.md
Personal/Shipfi/Python/LearnDoc/statement.md
Personal/Shipfi/Python/LearnDoc/list - 副本.md
0 → 100644
View file @
56393d2
## 列表操作
### 1. 基本操作
Personal/Shipfi/Python/LearnDoc/list_tuple_dic.md
0 → 100644
View file @
56393d2
## 列表&元组&字典操作
### 1. 基本操作
Personal/Shipfi/Python/LearnDoc/statement.md
View file @
56393d2
...
...
@@ -2,6 +2,16 @@
### 1. 迭代
> 迭代中使用的语句或关键字包括 for , while.
>
> 迭代的目标对象包括列表,元组,Map,实现Enumable的对象等
>
> 关键字 : for, while,range, list, tuple, map, enumable
#### 1.1 For迭代
*
使用For迭代序列对象
```
python
...
...
@@ -28,4 +38,153 @@
print
'
%
d
%
s'
%
(
i
,
name
)
```
#### 1.2 While迭代
while迭代比较简单,语句如下
```
python
count
=
0
;
while
(
count
<
9
):
print
'the index is:'
,
count
count
+=
1
```
#### 1.3 Range/xRange生成数组
> Range语法 1: range(start,end,step=1)
>
> 函数返回 一个包含有K的列表,这里 start<=k<end,从start到end, k每次递增step, step不可以为零。
>
> Range语法2 : range(end)
>
> 函数返回一个K长度的列表,从0开始,到end-1结束,列表为[0..end-1]
```
python
#[2,5,8,11,14,17]
range
(
2
,
19
,
3
)
#[3,4,5,6]
range
(
3
,
7
)
#[0,1,2,3,4,5,6]
range
(
7
)
```
> xrange只用在for循环中,语法与range相同,比起range,性能更优异。
>
> xrange不在内存中创建完整的拷贝,所以它是不生成整个列表的。
```
python
for
inx
in
xrange
(
7
):
print
'
%3
d'
%
inx
```
#### 1.4 循环中的else语句
> 在python中,在for/while代码块内可以使用else,来表示**循环正常结束**后所执行的语句。
>
> 在循环中,如果存在else, 那么break语句会跳过else的执行。
```
python
## 最大公约数函数
def
showMaxFactor
(
num
):
count
=
num
/
2
while
count
>
1
:
if
num
%
count
==
0
:
print
'largest fator of
%
d is
%
d'
%
(
num
,
count
)
break
;
count
-=
1
## 注意,下面的else是循环内的else,而与上面的if并不匹配
else
:
print
num
,
'is prime'
for
eachNum
in
range
(
10
,
21
):
showMaxFactor
(
eachNum
);
```
#### 1.5 迭代器/iter()函数
> 迭代器为类序列对象提供了一个类序列的**接口**
>
> 序列:是一组数据结构,利用它们的索引从0开始一直“迭代”到序列的最后一个条目。
>
> Python的迭代无缝支持序列对象,它还允许程序员迭代非序列类型,包括用户定义的对象。
>
> 使用迭代器,可以迭代不是序列,但是表现出序列行为的对象。例如字典的key, 一个文件的行等 。
迭代器的原理:
> 迭代器的原理同Java/.net的实现机理差不多。
>
> 迭代器是一个有next()方法的对象,当一个循环机制需要下一项时,调用迭代器的next()方法可以获得它。当迭代到最后一个时,再次迭代会引发StopInteration异常 ,告诉外部调用者,迭代完成。
```
python
# iter方法
myTuple
=
(
12
,
'xy'
,
34.2
)
i
=
iter
(
myTuple
)
# 12
i
.
next
()
# 'xy'
i
.
next
()
# '34.2
i
.
next
()
# Exception for StopIteration
i
.
next
()
```
#### 1.6 字典的迭代
> 字典数据结构的迭代就是通过iterator来实现的。
>
> python还引进了三个新的内建字典的方法来更好的迭代字典数据结构:
```
python
## 通过keys迭代
myDict
.
iterKeys
()
## 通过values迭代
myDict
.
iterValus
()
## 通过key/value迭代
myDict
.
iteritems
()
```
一个典型的字典遍历
```
python
knignts
=
{
'gallahad'
:
'the pure'
,
'robin'
:
'the brave'
}
for
k
,
v
in
knights
.
iteritems
():
print
k
,
v
```
#### 1.7 文件迭代
文件的迭代访问,
*
可以 通过readlines()实现
```
python
myFile
=
open
(
'config.txt'
)
for
eachLine
in
myFile
.
readlines
():
print
eachLine
```
*
直接内置了迭代器访问
```
python
myFile
=
open
(
'config.txt'
)
for
eachLine
in
myFile
:
print
eachLine
```
\ No newline at end of file
...
...
Please
register
or
login
to post a comment