ホームページ >バックエンド開発 >Python チュートリアル >必見の Python 言語の機能とスキル 30 選 (3)
allest)
>>> a = [random.randint(0, 100) >>> heapq.nsmallest(5, a) [3, 3, 5, 6, 8] >>> heapq.nlargest(5, a) [100] , 100, 99, 98, 98] 1.31 デカルト積 (itertools.product)> for p in itertools.product([1, 2, 3], [4, 5]):for p in itertools.product([0, 1],repeat=4):
...
print''.join(str(x) for x in p)
...
0000
0001
0010
0011
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
1.32 の組み合わせと置き換え組み合わせ (itertools.combinations と itertools.combinations_with_replacement)
> for c in itertools.combinations([1, 2, 3, 4, 5], 3):
... print ''.join ( str (x) for
245
345
>> > for c in itertools.combinations_with_replacement([1, 2, 3], 2):
... print ''.join(str (x は c の x)
...
11
12
13
22
23
33
1.33 並べ替え(itertools.permutations)
>> gt;> in itertools.permutations([1, 2, 3, 4]):
... print ''.join(str(x) for x in p)
...
1234
1243
1324
1342
1423
1432
2134
2143
2314
2341
2413
2431
3124
3142
3214
3241
3412
3421
4123
4132
4213
4231
4312
4321
1.34 リンクされた反復(itertools.chain)
>>> a = [1, 2, 3, 4]
>>> for p in itertools.chain(itertools.combinations(a, 2), itertools .combinations(a, 3)):
... print p
...
(1, 2)
(1, 3)
(1, 4)
(2, 3)
(2, 4)
(3, 4)
(1, 2, 3)
(1, 2, 4)
(1, 3, 4)
(2, 3, 4)
>>> itertools.chain.from_iterable(itertools.combinations(a, n) for n in range(len(a) + 1))
... サブセットを印刷
...
()
(1,)
(2,)
(3,)
(4,)
(1, 2) )
(1, 3)
(1, 4)
(2, 3)
(2, 4)
(3, 4)
(1, 2, 3)
(1, 2, 4)
(1, 3, 4)
(2 , 3, 4)
(1, 2, 3, 4)
1.35 指定された値で行をグループ化します (itertools.groupby)
> >> オペレーターから itemgetter をインポート
>>>
>>> infile として open('contactlenses.csv', 'r') を使用:
... data = [line.strip().split(',') for line in file]
...
> >>データ = データ[1:]
>>> def print_data(rows):
... print 'n'.join('t'.join('{:
。 ..
>>> print_data(data)
若い 近視 私オペ いいえ 普通 柔らかい
若い 近視 はい減りました なし
若い 近視 はい 難しい
よウン ハイパーメトロピー いいえ普通 柔らかい
若いはい 減少しました なし
若い ハイパーメトロピー はい 普通 難しい
老視前 近視 なし 軽減された なし
老視前 近視いいえなし
老眼前 近視 はい 普通 難しい
老視前老眼 遠視 いいえ なし
老視前 遠視 いいえ正常 ソフト
老視前 遠視 はい 軽減 なし
斜視 遠視 はい 正常 なし
老眼 近視 いいえ 軽減されました なし
老眼 近視いいえ 正常 なし
老視 近視 はい 軽減なし
老視症 近視 はい 難度
老眼症遠視 いいえ なし正常 柔らかい
老眼 遠視 はい 軽減されました なし
老眼 遠視 はい 正常 なし
>>> data.sort(key=itemgetter(-1))
>>>値の場合、 itertools.groupby(data, lambda r: r[-1]) のグループ:
... print '-----------'
... print 'Group: ' + 値
... print_data(グループ)
...
-----------
グループ: ハード
若い 近視 はい普通 難しい
若い ハイパーメトロープ はい 普通 難しい
老視前 近視 はい ハード
老眼 はい正常 難しい
----------
グループ: なし
若い 近視 なし軽減されました なし
若い 近視 はい 軽減されました なし
若い ハイパーメトロープいいえ 減少しました なし
若い ハイパーメトロープ はい 減少しましたなし
老視前 近視 なし 軽減された なし
老視前 近視はい 軽減されました なし
老眼前症 いいえ 軽減されましたなし
老視前 軽減 なし
老視前 はい正常 なし
老眼 近視 なし 軽減なし
老眼 近視 いいえ 正常 なし
老眼 近視はい 軽減されました なし
老視症 遠視 いいえ 軽減されましたなし
老視症 遠視 はい 軽減されました なし
老視症比喩 はい 普通 なし
-----------
グループ: ソフト
若い 近視 いいえ 普通 ソフト
若い遠視 いいえ
老視前 近視 いいえ普通 ソフト
老視前 遠視 なし 普通 ソフト
老視ハイパーメトロロープ いいえ 普通 ソフト
以上が必見の Python 言語の機能とスキル 30 選 (3)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。