Python-用一个in循环替换多个索引

时间:2020-02-19 14:03:16

标签: python

我正在尝试找到一种方法来用一个索引替换多个索引。

原始列表:

a[100] = "-277/480V RATED:"
a[101] = "Model L-N:"
a[102] = "B3 Ring Wave: 600"
a[103] = "C3 Combined Wave: 1300"
a[104] = "6kV-3Ka UL VPR: 1200"
a[105] = "Model L-G:"
a[106] = "B3 Ring Wave: 875"
a[107] = "C3 Combined Wave: 1300"
a[108] = "6kV-3Ka UL VPR: 1200"
a[109] = "Some other string"

我想要的输出是:

a[100] = "-277/480V RATED:"
a[101] = "Model L-N:\nB3 Ring Wave: 600\nC3 Combined Wave: 1300\n6kV-3Ka UL VPR: 1200"
a[102] = "Model L-G:\nB3 Ring Wave: 875\nC3 Combined Wave: 1300\n6kV-3Ka UL VPR: 1200"
a[103] = "Some other string"

我想我知道我将如何接洽一切。我要使用a.startswith(“ B3 Ring Wave :),因为它似乎是一个常量,然后用“ \ n”将其上方和下方的索引加入新行。

问题是我不知道如何替换索引,以及是否可以在for循环中运行它。我的想法是,如果我可以替换它们,它将检查不匹配的[101]。它将移动到匹配的[102]上,因此它将替换[101-104]。然后它将进入曾经是a [105]的a [102]的for循环。正确吗?

original = ["Some Other Sting","-277/480V RATED:","Model L-N:","B3 Ring Wave: 600","C3 Combined Wave: 1300","6kV-3Ka UL VPR: 1200","Model L-G:","B3 Ring Wave: 875","C3 Combined Wave: 1300","6kV-3Ka UL VPR: 1200","Some other string"]

joinedList = []

for i, str in enumerate(original):
    if str.startswith("B3 Ring Wave:"):
        joinedList.append("\n".join(original[i - 1: i + 2]))
    else:
        "Do Nothing"

2 个答案:

答案 0 :(得分:0)

从要迭代的列表中删除元素通常会引起很多麻烦。我强烈建议创建一个新列表。假设要替换的子列表始终以“ Model…”开头,并包含三行,则可以这样完成:

var imgArray = new Array();

var corp = document.getElementById('range_imgs');

imgArray[0] = new Image();
imgArray[0].src = "https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.futura-sciences.com%2Fsciences%2Fdefinitions%2Funivers-etoile-3730%2F&psig=AOvVaw2EmQPZg6y4m5Ap-jl4oKQv&ust=1582208140734000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCKjQluTm3ecCFQAAAAAdAAAAABAD";
imgArray[0].setAttribute("id" , "2");


imgArray[1] = new Image();
imgArray[1].src = "https://www.google.com/url?sa=i&url=http%3A%2F%2Fvivre-marrakech.com%2Fblog%2Ffaire%2Fobserver-les-etoiles-a-marrakech%2F&psig=AOvVaw2EmQPZg6y4m5Ap-jl4oKQv&ust=1582208140734000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCKjQluTm3ecCFQAAAAAdAAAAABAI";
imgArray[1].setAttribute("id" , "1");

imgArray[2] = new Image();
imgArray[2].src = "https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.numerama.com%2Fsciences%2F537548-au-lieu-detre-avalee-par-un-trou-noir-cette-etoile-sest-echappee-a-toute-vitesse.html&psig=AOvVaw2EmQPZg6y4m5Ap-jl4oKQv&ust=1582208140734000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCKjQluTm3ecCFQAAAAAdAAAAABAN";
imgArray[2].setAttribute("id" , "3");

imgArray[3] = new Image();
imgArray[3].src = "https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.geowiki.fr%2Findex.php%3Ftitle%3D%25C3%2589toile&psig=AOvVaw2EmQPZg6y4m5Ap-jl4oKQv&ust=1582208140734000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCKjQluTm3ecCFQAAAAAdAAAAABAS";
imgArray[3].setAttribute("id" , "2");

imgArray[4] = new Image();
imgArray[4].src = "https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.futura-sciences.com%2Fsciences%2Fquestions-reponses%2Fespace-quest-ce-quune-etoile-157%2F&psig=AOvVaw2EmQPZg6y4m5Ap-jl4oKQv&ust=1582208140734000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCKjQluTm3ecCFQAAAAAdAAAAABAX";
imgArray[4].setAttribute("id" , "1");


  for(var i=0;i<imgArray.length;i++){
    var imges = document.createElement("img");
      imges.src = imgArray[i].src;
      imges.style.marginRight = "15px";
      corp.appendChild(imges);
  }

  function appFilter(ele){

      var pics = document.querySelectorAll("img");

          if(pics.id == "1"){

          }

  }

答案 1 :(得分:0)

一个选择是遍历列表,并用新值更改索引之一。然后,您可以记录需要删除的索引,然后再做。

示例

[2020-02-19T15:00:10.055+0100] [Payara 5.194] [WARNING] [] [javax.enterprise.web] [tid: _ThreadID=43 _ThreadName=http-thread-pool::http-listener-1(3)] [timeMillis: 1582120810055] [levelValue: 900] [[StandardWrapperValve[configs.JaxRsActivator]: Servlet.service() for servlet configs.JaxRsActivator threw exception java.lang.IllegalAccessException: Class org.eclipse.yasson.internal.model.GetFromGetter can not access a member of class org.threeten.bp.zone.ZoneRules$Fixed with modifiers "public"
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:102)

  Error getting value on: FixedRules:+01:00]] [2020-02-19T15:00:10.029+0100] [Payara 5.194] [SEVERE] [] [org.eclipse.yasson.internal.Marshaller] [tid: _ThreadID=43 _ThreadName=http-thread-pool::http-listener-1(3)] [timeMillis: 1582120810029] [levelValue: 1000] [[ Generating incomplete JSON]]
相关问题