Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据Python中包含的文本对列表中的字符串进行配对_Python_List - Fatal编程技术网

根据Python中包含的文本对列表中的字符串进行配对

根据Python中包含的文本对列表中的字符串进行配对,python,list,Python,List,我希望获得一个字符串列表,并创建一个元组列表,根据它们是否包含相同的文本对项目进行分组 例如,假设我有以下列表: MyList=['Apple1','Pear1','Apple3','Pear2'] 我想根据字符串的最后一个字符以外的所有字符对它们进行配对,以便得到: ListIWant=[('Apple1','Apple3'),('Pear1','Pear2')] 我们可以假设仅使用字符串的最后一个字符来标识。这意味着我希望通过以下唯一值对字符串进行分组: >>>

我希望获得一个字符串列表,并创建一个元组列表,根据它们是否包含相同的文本对项目进行分组

例如,假设我有以下列表:

MyList=['Apple1','Pear1','Apple3','Pear2']
我想根据字符串的最后一个字符以外的所有字符对它们进行配对,以便得到:

ListIWant=[('Apple1','Apple3'),('Pear1','Pear2')]    
我们可以假设仅使用字符串的最后一个字符来标识。这意味着我希望通过以下唯一值对字符串进行分组:

>>> list(set([x[:-1] for x in MyList]))
['Pear', 'Apple']
考虑以下代码:

   def alphagroup(lst):
      results = {}
      for i in lst:
         letter = i[0].lower()
         if not letter in results.keys():
            results[letter] = [i,]
         else:
            results[letter].append(i)
      output = []
      for k in results.keys():
         res = results[k]
         output.append(res)
      return output

   arr = ["Apple1", "Pear", "Apple2", "Pack"];

   print alphagroup(arr);
这将实现你的目标。如果每个元素必须是一个元组,请使用tuple()内置命令将每个元素转换为一个元组。希望这有帮助;我测试了代码。

请考虑以下代码:

   def alphagroup(lst):
      results = {}
      for i in lst:
         letter = i[0].lower()
         if not letter in results.keys():
            results[letter] = [i,]
         else:
            results[letter].append(i)
      output = []
      for k in results.keys():
         res = results[k]
         output.append(res)
      return output

   arr = ["Apple1", "Pear", "Apple2", "Pack"];

   print alphagroup(arr);
这将实现你的目标。如果每个元素必须是一个元组,请使用tuple()内置命令将每个元素转换为一个元组。希望这有帮助;我测试了代码。

请考虑以下代码:

   def alphagroup(lst):
      results = {}
      for i in lst:
         letter = i[0].lower()
         if not letter in results.keys():
            results[letter] = [i,]
         else:
            results[letter].append(i)
      output = []
      for k in results.keys():
         res = results[k]
         output.append(res)
      return output

   arr = ["Apple1", "Pear", "Apple2", "Pack"];

   print alphagroup(arr);
这将实现你的目标。如果每个元素必须是一个元组,请使用tuple()内置命令将每个元素转换为一个元组。希望这有帮助;我测试了代码。

请考虑以下代码:

   def alphagroup(lst):
      results = {}
      for i in lst:
         letter = i[0].lower()
         if not letter in results.keys():
            results[letter] = [i,]
         else:
            results[letter].append(i)
      output = []
      for k in results.keys():
         res = results[k]
         output.append(res)
      return output

   arr = ["Apple1", "Pear", "Apple2", "Pack"];

   print alphagroup(arr);

这将实现你的目标。如果每个元素必须是一个元组,请使用tuple()内置命令将每个元素转换为一个元组。希望这有帮助;我对代码进行了测试。

我相信您希望对
排序的
调用使用与对
groupby
调用相同的
函数,否则当输入类似于
“Apple1”、“Apple12”、“Apple3”
时,您将分组,因为即使
groupby
函数将
Apple1
Apple3
组合,
Apple12
也会在两者之间排序并拆分组,从而防止
groupby
看到两者属于一起(它只处理由连续值组成的组)。没错。现在添加。我相信您希望对
排序的
调用使用与对
groupby
调用相同的
函数,否则当输入类似于
“Apple1”、“Apple12”、“Apple3”
时,您将分组,因为即使
groupby
函数将
Apple1
Apple3
组合,
Apple12
也会在两者之间排序并拆分组,从而防止
groupby
看到两者属于一起(它只处理由连续值组成的组)。没错。现在添加。我相信您希望对
排序的
调用使用与对
groupby
调用相同的
函数,否则当输入类似于
“Apple1”、“Apple12”、“Apple3”
时,您将分组,因为即使
groupby
函数将
Apple1
Apple3
组合,
Apple12
也会在两者之间排序并拆分组,从而防止
groupby
看到两者属于一起(它只处理由连续值组成的组)。没错。现在添加。我相信您希望对
排序的
调用使用与对
groupby
调用相同的
函数,否则当输入类似于
“Apple1”、“Apple12”、“Apple3”
时,您将分组,因为即使
groupby
函数将
Apple1
Apple3
组合,
Apple12
也会在两者之间排序并拆分组,从而防止
groupby
看到两者属于一起(它只处理由连续值组成的组)。没错。现在把它加进去。