Re: [问卦] 初学Python是不是养成一堆坏习惯?

楼主: Ommm5566 (56天團)   2022-02-02 02:43:13
※ 引述《dixitdeus (dixitdeus)》之铭言:
: 现在流行入门学Python,真的会养成一堆坏习惯耶
: 昨天看学生写的code,一堆人在那边:
: for s in list:
: If list.index(s) % 2 == 0
: 看到快吐血
: 直接用for each loop,每次都给我call 函式找index
: 还有人写:
: b = [1,2,3]
: c = [4,5,6]
: …
: …
: c = b[0]
: 直接把装list的变量拿来装int
: 可以理解python用于资料科学、机器学习的优势
: 但初学者就学Python是不是会养成一堆坏习惯啊?
: 可以从C开始学吗….
你在讲什么鬼 这个很显然就是因为先学C导致写法不pythonic
以你举的第一个例子来说 应该会是 res = [i % 2 == 0 for i in range(len(list))]
有np的话第一个例子连for in 都省了
import numpy as np
res = np.asarray(range(len(list))) % 2 == 0
b, c....如果是后面会用到的向量建议用np
b = np.asarray([1,2,3])
c = np.asarray([4,5,6])
因为丢进Learning的function有时候会直的接 有时候是横接 有时候会打开
这时候可以善用concatenate 举例:
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
np.concatenate((a, b), axis=0) # array([[1, 2], [3, 4], [5, 6]])
np.concatenate((a, b.T), axis=1) # array([[1, 2, 5], [3, 4, 6]])
np.concatenate((a, b), axis=None) # array([1, 2, 3, 4, 5, 6])

Links booklink

Contact Us: admin [ a t ] ucptt.com