小编Nau*_*hid的帖子

按列而不是按行替换列表中的字符

目前我有以下列表:

counter = [13]
instruments = ['3\t     ---', '2\t    /   \\', '1\t   /     \\', '0\t---       \\       ---', '-1\t           \\     /', '-2\t            \\   /', '-3\t             ---']
score = ['|*************|']
Run Code Online (Sandbox Code Playgroud)

我要做的是用乐谱列表中的字符替换乐器列表中的字符(不包括|).

我目前遇到以下问题

字符将逐行替换,而不是逐列替换.

仪器清单:

3        ---
2       /   \
1      /     \
0   ---       \       ---
-1             \     /
-2              \   /
-3               ---
Run Code Online (Sandbox Code Playgroud)

分数列表:

|*************|
Run Code Online (Sandbox Code Playgroud)

预期产量:

3        ***
2       *   *
1      *     *
0   ***       *       
-1             *     
-2              *   
-3               
Run Code Online (Sandbox Code Playgroud)

电流输出:

3        ***
2       *   *
1 …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

6
推荐指数
1
解决办法
95
查看次数

通过修改原始列表就地重新排列列表,将偶数索引值放在前面

我对python相对较新,我仍然在努力学习该语言的基础知识.我偶然发现了一个问题,要求您通过修改原件来重新排列列表.你应该做的是将所有偶数索引值移到前面(以相反的顺序),然​​后是奇数索引值.

例:

l = [0, 1, 2, 3, 4, 5, 6]
l = [6, 4, 2, 0, 1, 3, 5]
Run Code Online (Sandbox Code Playgroud)

我最初的方法是使用以下内容:

l = l[::-2] + l[1::2]
Run Code Online (Sandbox Code Playgroud)

但是,显然这被认为是"创建一个新列表"而不是循环遍历原始列表来修改它.

因此,我希望得到一些关于如何处理这个特定问题的想法或提示.我知道我可以使用for循环或while循环遍历元素/索引,但我不知道如何进行交换或其他任何事情.

python list in-place slice indices

4
推荐指数
1
解决办法
381
查看次数

从段中读取文件

我编写了一个脚本,从两个不同的文件中读取数据并相应地继续.但是,当我编写脚本时,我的印象是我正在阅读的第一个文件只有两行,遗憾的是后来这已经改变了.

我的代码提取前两行并将数据传递给另一个函数,然后通过多个其他函数继续进行计算.

现在我正在做这样的事情:

try:
    file = open(myfile, 'r')
    for line in file:
        if line[0] != '|':
            name = line.strip('\n')
        else:
            data = line.strip('|\n')
Run Code Online (Sandbox Code Playgroud)

通常,该文件如下所示:

Samantha
|j&8ju820kahu9|
Run Code Online (Sandbox Code Playgroud)

现在,遗憾的是,我可以拥有一个可以有多行的文件,如下所示:

Andy
|o81kujd0-la88js|
Mathew
|a992kma82nf-x01j4|
Andrew
|01ks83nnz;a82jlad|
Run Code Online (Sandbox Code Playgroud)

有没有办法可以从文件中一次提取两行?处理它们然后继续提取两个?所以抓住前两行,给它们命名+数据,将它传递给我的函数,最后打印所需的内容,然后得到新的两行,依此类推.

请指教.

python

2
推荐指数
1
解决办法
143
查看次数

将多个列表中的元素打印为组合线

我已将多个文件中的数据合并到一个列表列表中.每个单独的列表代表文件中找到的行.

Final_List = [['line1', 'line2', 'line3'], ['line1', 'line2', 'line3'], ['line1', 'line2', 'line3', 'line4']]
Run Code Online (Sandbox Code Playgroud)

我想要做的是循环遍历列表并将各个线组合在一起(使用制表符间距)并打印它们.

所以像这样:

new_line_ 1 = line1\tline1\tline1
new_line_4 = \t\tline4
Run Code Online (Sandbox Code Playgroud)

基本上,获取第一个列表的第一个元素,并将其与第二个列表的第一个元素组合,由制表符分隔,依此类推.但是,如果一个列表比另一个列表大 - 为其他列表的缺失行添加\ t.

什么是最好的方法来解决这个问题?

我正在考虑更改前两个列表并将\ t添加到每个元素并添加额外的\ t以使它们与list3相同.

但我觉得应该有更好的方法来做到这一点.

python python-3.x

0
推荐指数
1
解决办法
67
查看次数

标签 统计

python ×4

python-3.x ×2

in-place ×1

indices ×1

list ×1

slice ×1