1
#python

list="""a 1 2 3 4 5
b 1 2 3 4 5
c 1 2 3 4 5 """


a=list.split('\n')
if a[0][0]==a:
    do something
if a[1][0]==b:
    do something
if a[2][0]==c:
    do something

python是否有一种自动读取每行第一部分的方法?而不是做上述?我正在尝试使用每行上的第一个 str char 作为 python 识别下一步要采取的行动的一种方式。

4

3 回答 3

6

您可以创建字典并将'a', 'b',映射'c'到某些函数。:

def func1(): print "func1"

def func2(): print "func2"

def func3(): print "func3"

dic={"a":func1,"b":func2,"c":func3}

lis="""a 1 2 3 4 5
b 1 2 3 4 5
c 1 2 3 4 5 """

for item in lis.splitlines():
    dic[item[0]]()

输出:

func1
func2
func3
于 2013-05-03T11:54:29.853 回答
2

您当然可以使用哈希将名称映射到操作:

actions = { "a": do_a, "b": do_b, "c": do c }

for l in list.splitlines():
  here = l[0]
  if here in actions:
    actions[here]()
于 2013-05-03T11:54:53.150 回答
-2

map(lambda xs: if xs[0] == a: dosomething, list.split('\n'))可能是您正在寻找的。

于 2013-05-03T11:58:40.330 回答