在给定一组坐标的情况下打印str

时间:2017-05-16 20:00:29

标签: python list printing

我正在研究一个问题,我想在某些条件下打印“X:s”或“ - ” - 就像坐标系一样。

给出两个清单:

my_list = [n for n in range(11)]

coordinates = [3,5,7,8]

假设给定元素位于coordinatesmy_list中,则X将打印在该元素值的索引处; “ - ”将打印在没有这种匹配的地方。

鉴于coordinatesmy_list,会发生以下情况: >>> ––X–X–XX

这是我到目前为止所提出的

for n in range(len(coordinates)):
    if coordinates[n] in my_list:
       print("–"*(coordinates[n]-(2**n)), end="")
       print("X", end="")

实现这一目标的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

我建议只浏览你需要打印的字符串的整个长度(len(my_list)),并在每个索引上检查是否需要打印X或 - 。 这样的事情:

for i in my_list:
    if i+1 in coordinates:
        print("X", end="")
    else:
        print("-", end="")
print("") # go down a line

答案 1 :(得分:1)

试试这个,

In [42]: ''.join(['X' if i+1 in coordinates else '-' for i in my_list])
Out[42]: '--X-X-XX---'

不要做my_list = [n for n in range(11)]range(11)它自己给出一个元素列表,不需要列表理解。

答案 2 :(得分:1)

你可以直接使用genetator .join到字符串:

public function postActivateUser(Request $request)
{
    // get the user from activation token

    $user = User::findByToken($request->token);
    $user->enabled = 1;
    $user->save();

    return response()->json(['result' => true, 'msg' => 'Your account has been activated.']);
}