1리스트를 생성
목록을 생성하기 위해 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 우리는 범위 (1, 11)를 사용할 수있다 :
>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环:
>>> L = []
>>> for x in range(1, 11):
... L.append(x * x)
...
>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
그러나 너무 복잡주기 및 공식 목록 문 위에 생성 된 순환 라인 목록으로 대체 할 수있다 :
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
문구는 파이썬 - 특정 목록을 생성 유형 . 공식 목록을 사용하여, 그것은 매우 간단한 코드 생성 목록이 될 수 있습니다.
식의 목록을 작성할 때, 요소는 x는 * 루프, 당신은 목록을 만들 수 있습니다 다음에 전면에, 몇 번을 작성하는 데 유용 X, 곧이 구문을 잘 알고있을 것입니다 생성합니다.
작업 :
화학식 목록 생성 목록을 사용하세요 [1 × 2, × 4, 5 × 6, 7x8를, ..., 99x100]
팁 : 범위 (1, 100, 2) 목록을 생성 할 수있다 [1, 3, 5, 7, 9, ...]
암호:
print [x*(x+1) for x in range(1,100,2)]
2, 복잡한 표현식
당신은 또한 반복 DICT 수, 루프 반복의 반복에 대한 일반 목록뿐만 아니라 사용합니다.
다음 DICT를 가정 해 봅시다 :
D = {아담 '95 '리사 '85'바트 ': 59}
HTML 테이블에리스트를 행 복잡한 식 수
tds = ['<tr><td>%s</td><td>%s</td></tr>' % (name, score) for name, score in d.iteritems()]
print '<table>'
print '<tr><th>Name</th><th>Score</th><tr>'
print '\n'.join(tds)
print '</table>'
참고 :
문자열 %, 지정된 매개 변수 %의 대안으로 포맷 할 수 있습니다. 문자열 () 메소드는 문자열 목록에 함께 넣을 수에 가입하세요.
HTML 파일로 결과를 밖으로 인쇄, 저장, 당신은 브라우저의 효과를 볼 수 있습니다
<table border="1">
<tr><th>Name</th><th>Score</th><tr>
<tr><td>Lisa</td><td>85</td></tr>
<tr><td>Adam</td><td>95</td></tr>
<tr><td>Bart</td><td>59</td></tr>
</table>
이름 | 점수 |
---|---|
리사 | (85) |
아담 | (95) |
바트 | (59) |
작업 :
학생들은 통과하지 못한 대해 생성 된 표에서 빨간색으로 표시된 점수를 넣어주십시오.
팁 : 빨간색이 될 수있다 <td style="color:red">
달성했다.
암호:
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
def generate_tr(name, score):
if score < 60:
return '<tr><td>%s</td><td style="color:red">%s</td></tr>' % (name, score)
return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)
tds = [generate_tr(name, score) for name, score in d.iteritems()]
print '<table border="1">'
print '<tr><th>Name</th><th>Score</th><tr>'
print '\n'.join(tds)
print '</table>'
(코드 아무 문제) (이 흑백 사진입니다)
도 3에 도시 된 바와 같이, 필터 조건
목록의 공식은 또한 판사 경우 다시 루프를 추가 할 수 있습니다. 예를 들면 :
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
우리는 범위 ()을 변경하지 마십시오, 짝수의 제곱을하려는 경우 경우, 당신은 화면 경우 추가 할 수 있습니다 :
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]
은 if 조건이 참으로 판사 경우에만 다음 루프 현재의 요소가 목록에 추가하는 경우에만.
작업 :
목록, 문자열이 자본 반환 될 모든 다음 목록을받는 함수를 작성 해주세요, 문자열이 아닌 요소는 무시됩니다.
팁 :
-
isinstance (X, STR)은 변수 x가 문자열인지를 결정할 수있다;
-
문자열 위 () 메소드가 반환 문자를 대문자.
암호:
def toUppers(L):
return [x.upper() for x in L if isinstance(x, str)]
print toUppers(['Hello', 'world', 101])
4 다층 식
루프가 중첩 될 수 위해, 따라서, 식 목록에 또한 목록을 생성하는 다중 루프를 사용할 수있다.
캐릭터 'ABC'와 '123'에 대한 두 개의 루프는 전체 어레이를 생성하는데 사용될 수있다 :
>>> [m + n for m in 'ABC' for n in '123']
['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']
이 같은 루프 코드로 번역 :
L = []
for m in 'ABC':
for n in '123':
L.append(m + n)
작업 :
화학식리스트 삼층 루프를 사용하여, 세 자리 대칭성을 발견. 오른쪽은 왼쪽 또는 반전하기 때문에 예를 들어 121, 121, 대칭의 수이다.
암호:
print [100 * n1 + 10 * n2 + n3 for n1 in range(1, 10) for n2 in range(10) for n3 in range(10) if n1==n3]