Python > listの値を取り出す (unpackする) > *をつける > print (*mylist) / print()に関してPython 2とPython 3の違いについて教えていただきました


動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 14.04 LTS desktop amd64
TensorFlow v0.11
cuDNN v5.1 for Linux
CUDA v8.0
Python 2.7.6
IPython 5.1.0 -- An enhanced Interactive Python.
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
sc_N = array.array('i')
sc_N.fromfile(rfp,1)
sc_sizes = array.array('i')
sc_sizes.fromfile(rfp, sc_N)

上記はエラーとなる。

TypeError: an integer is required

sc_Nが値(integer型)でなく、リストになっているから。

1つの要素のリストから値を取るにはunpackすることになりそう。

参考 http://stackoverflow.com/questions/3480184/unpack-a-list-in-python

実装してみた。(追記: 以下のideoneではPython 3環境です)
http://ideone.com/1VUh3O

mylist = [ 3 ]
print (mylist)

print (*mylist)
実行
[3]
3

取れた。

Python2とPython3

print()の例でPython2とPython3の違いについて @knoguchi さんと @shiracamus さんに教えていただきました。

今後のことを考えてPython3で実装するように検討してみます。