<p>您可以使用mod 3(i%3)来确定需要使用哪个索引值。在这里,我使用mod 3来实现它,因为格式的长度是3</p>
<p>下面是实现</p>
<pre><code>my_list = range(11, 17)
formats = ['#', '$', '%']
mystring = ''.join(str(i)+formats[(i+1)%3] for i in my_list)[:-1]
print (mystring)
</code></pre>
<p>因为我们使用的是join,所以它也包含最后一个范围编号。所以我们需要排除最后一个位置。为此,我使用[:-1]</p>
<p>其输出为:</p>
<pre><code>11#12$13%14#15$16
</code></pre>
<p>如果要使其通用,可以执行以下操作:</p>
<pre><code>mystring = ''.join(str(j)+formats[i%len(formats)] for i,j in enumerate(my_list))[:-1]
</code></pre>
<p>以下是以下范围的结果:</p>
<pre><code>formats = ['#', '$', '%']
my_list = range(11, 25)
11#12$13%14#15$16%17#18$19%20#21$22%23#24
formats = ['#', '$', '%']
my_list = range(12, 25)
12#13$14%15#16$17%18#19$20%21#22$23%24
formats = ['#', '$', '%']
my_list = range(13, 25)
13#14$15%16#17$18%19#20$21%22#23$24
formats = ['#', '$', '%']
my_list = range(14, 25)
14#15$16%17#18$19%20#21$22%23#24
formats = ['#', '$', '%']
my_list = range(15, 25)
15#16$17%18#19$20%21#22$23%24
my_list = range(11, 25)
formats = ['#', '$', '%', '&','@']
11#12$13%14&15@16#17$18%19&20@21#22$23%24
my_list = range(12, 25)
formats = ['#', '$', '%', '&']
12#13$14%15&16#17$18%19&20#21$22%23&24
</code></pre>
<p>如果通用代码在任何情况下失败,请告诉我</p>