ホームページ >バックエンド開発 >Python チュートリアル >Python データを垂直から水平に変更するにはどうすればよいですか?
Python データを垂直方向から水平方向に変更する方法: 行列転置のプロセスと同様に zip() 関数を使用して、垂直方向のデータを水平方向のデータに変更します。構文 "zip([iterable, ... ])」。この関数は、オブジェクト内の対応する要素をタプルにパックし、これらのタプルで構成されるリストを返します。
Python は現在非常に人気のある言語であり、あらゆる階層の多くの人が Python を学習していますが、学習プロセスで直面する困難は同じではありません。少し。たとえば、データを縦方向から横方向に変更する方法について説明します。
最初のメソッド:
水平データ:
def func(*kargs): return kargs, //有“,” l = func(5,3,4,5,6) for i in l: print (i)
出力対象:
(5, 3, 4, 5, 6)
Python データを垂直データから水平データに変更したい場合は、
を使用して垂直データに変更する必要があります:
def func(*kargs): return kargs //无“,” l = func(5,3,4,5,6) for i in l: print (i)
出力は次のとおりです:
5 3 4 5 6
これは、 return kargs がタプル (5、3、4、5、6) である受信パラメータを返すため、トラバーサル出力は垂直になり、 return kargs は受信パラメータです。パラメータは実際にはタプルにパッケージ化され、(kargs, ) の形式で返されます。この場合は ((5, 3, 4, 5, 6), ) です。これは、トラバーサル オブジェクトにはタプル オブジェクトが 1 つしかないためです。つまり ( 5, 3, 4, 5, 6) なので、実際には print((5, 3, 4, 5, 6)) のみが実行されます。
#2 番目の方法:
1、python3.2
# -*- coding: utf-8 -*- def vertical_print(s): lines=s.strip('。').split(',') lines.reverse() print('\n'.join([' '.join(w) for w in zip(*lines)])) vertical_print("白日依山尽,黄河入海流,欲穷千里目,更上一层楼。")
2、python 2.5
# -*- coding: utf-8 -*- def vertical_print(s): lines=s.strip('。'.decode('utf8')).split(','.decode('utf8')) lines.reverse() print '\n'.join([' '.join(w) for w in zip(*lines)]) s="白日依山尽,黄河入海流,欲穷千里目,更上一层楼。".decode('utf8') vertical_print(s)zip() の関数は Combine です。複数の受信イテラブルを一緒に。 たとえば、list(zip("abc","def","ghi")) は [('a', 'd', 'g'), ('b', 'e' を取得します) 、'h')、('c'、'f'、'i')]。ここでは、zip(*lines)から各行に出力すべき文字のタプルを取得しています。
本質的に、このプログラムは行列転置に似たプロセスであり、核となるのは zip() 関数の呼び出しです。
Python を学習するには、Python のアイデアを使用して練習する必要があります。 C のアイデアに制限されないように努めることによってのみ、Python を上手に書くことができます。以上がPython データを垂直から水平に変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。