Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.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_String_Python 2.7_Indexing - Fatal编程技术网

Python 如何打印字符串的偶数索引字符和奇数索引字符?

Python 如何打印字符串的偶数索引字符和奇数索引字符?,python,string,python-2.7,indexing,Python,String,Python 2.7,Indexing,手头的任务: 给定长度为N的字符串S,其索引范围为0到N-1,打印 它的偶数索引字符和奇数索引字符是两个空格分隔的 单行上的字符串 编写测试用例时,第一行包含 整数,N(测试用例的数量)。N行中的每一行i 行包含一个字符串 这是我的密码: N = int(raw_input()) for i in range(0,N): string = raw_input() evenlist = [] oddlist = [] for item, char in enumerate(strg)

手头的任务:

给定长度为N的字符串S,其索引范围为0到N-1,打印 它的偶数索引字符和奇数索引字符是两个空格分隔的 单行上的字符串

编写测试用例时,第一行包含 整数,N(测试用例的数量)。N行中的每一行i 行包含一个字符串

这是我的密码:

N = int(raw_input())

for i in range(0,N):
    string = raw_input()

evenlist = []
oddlist = []

for item, char in enumerate(strg):
    if item % 2 == 0:
        evenlist.append(char)
    else:
        oddlist.append(char)

print ''.join(evenlist), ''.join(oddlist)
样本运行:

第一个输入是:
2.
黑客
等级
预期产出为:
Hce-akr
Rn ak
但我得到:

HceRn-akrak

下面是到的链接,可以更好地解释这个问题。

实现这一点的更简单方法是使用字符串切片:

因此,您的整个代码可以写成:

for _ in range(int(raw_input())):
    my_str = raw_input()
    print '{} {}'.format(my_str[::2], my_str[1::2])

你也可以这样做:

inp = raw_input("Enter your input: ")

final = "{}  {}".format("".join(inp[k] for k in range(len(inp)) if k % 2 == 0), "".join(inp[k] for k in range(len(inp)) if k % 2 != 0))
import java.io.*;
导入java.util.*;
公共类解决方案{
私有静态无效f(字符串s){
//TODO自动生成的方法存根
char c[]=s.toCharArray();
int i,j;

for(i=0;i//在java中,只是为了更新上面的答案,以获得他们没有为//循环添加的多个字符串

import java.io.*;
import java.util.*;

public class dummy {


    public static void main(String[] args) {
         Scanner sc=new Scanner(System.in);
         System.out.print("Enter the number of test cases :");

         int s=sc.nextInt();

         //for loop for multiple strings as per the input
         for(int m=1;m<= s;m++)
         {
              System.out.print("\n Enter the string : ");       
              String s1=sc.next();
              f(s1); 
              System.out.print();       

         }

    }

    private static void f(String s1){

            char c[]=s1.toCharArray();
            int i,j;

           for (i = 0; i <c.length;i++)
           { 
               System.out.print(c[i]);
                   i+=1;
           }
           System.out.print(" ");

           for (j = 1; j<c.length;j++)
           {
               System.out.print(c[j]);
               j+=1;    
           }
        }

}
import java.io.*;
导入java.util.*;
公共类虚拟{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
System.out.print(“输入测试用例数:”);
int s=sc.nextInt();
//根据输入的多个字符串的for循环
对于(int m=1;m请尝试以下代码:

N = int(input())

evenlist = [] oddlist = []

for i in range(0,N): 
   string=input() 
   evenlist.clear() 
   oddlist.clear() 
   for item, char in enumerate(string): 
     if item % 2 == 0: 
       evenlist.append(char) 
     else: oddlist.append(char) 
   print(''.join(evenlist),''.join(oddlist))

print('')

黑客等级问题的解决方案是使用字符串切片和列表

n= int(input())
r = []
if(n>=1 and n<= 10):
    for i in range(n):
        r.append(input())
for s in r:
    print("{} {}".format(s[::2],s[1::2]))
n=int(输入())
r=[]
如果(n>=1和n
num=int(输入())
mylist=[]
对于范围内的单词(num):
单词=输入()
mylist.append(单词)
#打印(mylist)
i=0
#将第0位视为此处的平均位置。
而Python-3中的i

for i in range(int(input())):
    STDIN = input()
    print(f"{STDIN[::2]} {STDIN[1::2]}")
输入:

 2
 Hacker
 Rank
输出:

Hce-akr Rn ak

尝试下面的算法。它是用Java编写的。但是基本过程是
以2为增量沿输入字串的长度扫描。偶数
首先使用以i=0和开始的for循环打印索引字符
通过在循环中添加一个额外的i++来实现
打印字符时,for循环从1开始,逐步递增
共2人。
导入java.io.*;
导入java.util.*;
导入java.text.*;
导入java.math.*;
导入java.util.regex.*;
导入java.util.array;
公共类解决方案{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
int n=scanner.nextInt();
for(int iter=1;iter#使用for循环和条件语句

text=input()
for items in range(len(text)):
    if items%2==0:
        print(text[items],end='')
print(end='  ')
for items in range(len(text)):
    if items%2!=0:
        print(text[items],end='')

#使用这个,这将非常适用于此

我是一个新的编码专家,但这在解决所有测试用例时都能很好地工作

T=int(input())
for i in range(T):
  S=input("")
  for item in range(length(S)):
     if item%2==0:
       print(S[item],end="")
  print(end=" ")
  for item in range(length(S)):
     if item%2!=0:
       print(S[item],end="")
  print(end='\n')
import java.io.*;
导入java.util.*;
公共类解决方案{
公共静态void main(字符串[]args){
/*在此处输入代码。从STDIN读取输入。将输出打印到STDOUT。您的类应命名为Solution*/
扫描仪s=新的扫描仪(System.in);
字符串str;
int T=s.nextInt();

对于(inti=0;i这也可以通过连接单词来实现

Num_set = int(input())


for item in range(Num_set):
    word = input()
    new = ""
    second = ""
    for i in range(len(word)):
    
        if i%2 == 0:
            new = new + word[i] 
        else:
            second = second +word[i]
    print(new +" "+second)

问题是什么?这里有一个链接可以更好地解释这个问题:你发布的代码不会产生你发布的错误。看起来你是从内存中重新键入的,产生了一组完全不同的问题。不要重新键入-总是复制粘贴。明白了。我复制并粘贴了。现在你输入了正确的代码,你能告诉我们是什么吗具体的问题是。这段代码很容易理解,试试看,你会得到预期的输出。第一个for循环用于获取输入。如上所述,预期的o/p haker 1st,我们正在清除oddlist和evenlist,然后枚举给我们haker的索引和值,比如1h2a3k4e5r,所以iteam包含索引,char包含so,使用modules我们可以将奇数和偶数事件分开,然后打印输出和内部for循环结束,然后再次进入外部for循环,这样它们的奇数和偶数列表再次清除,然后再次重复,如上所述。谢谢。请尝试编辑您的答案,以包括为什么这会回答问题的信息,而不仅仅是提供g code.OP问题是用Python提出的,我想他正在用Python寻找答案。另外,您可能需要添加一些注释。
length
应该是
len
 2
 Hacker
 Rank
t = int(input())
for i in range(t):
    s = input()
    idx = 0
    newstr = ''
    newstr2 = ''
    for letter in s:
        if idx % 2 == 0:
            newstr = newstr + s[idx]
        else:
            newstr2 = newstr2 + s[idx]
        idx += 1
    print(newstr, newstr2)
Try the below algorithm. It is in Java. However the basic procedure is to 
scan the input word string along its length in increments of 2. The even 
index characters are printed first using a for loop starting with i = 0 and 
by adding an additional i++ inside the loop. The odd 
characters are printed starting the for loop from 1 and incrementing by steps 
of 2.  

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
import java.util.Arrays;

public class Solution {

public static void main(String[] args) {
    

    Scanner scanner = new Scanner(System.in);
    int n = scanner.nextInt();
   
    for(int iter= 1;iter<=n;iter++)
    {
        scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
        String myString = scanner.nextLine();
        char[] myCharArray = myString.toCharArray();
        int t = myString.length();
                       
            for(int i = 0; i < t; i++)
                {
                    // Print each sequential character on the same line
                    System.out.print(myCharArray[i]); 
                    i++;
                }

            System.out.print(" "); 

            for(int k = 1; k < t; k++)
                {
                    // Print each sequential character on the same line
                    System.out.print(myCharArray[k]);
                    k++; 
                }
     
        System.out.print("\n");
    
        }

    }
}
i=0
for t in range(int(input())):
    S = input()
    y = len(S)

    print(S[i:y+1:2],S[i+1:y+1:2] )


#output= "satisfies all the test cases of HackerRank...."
text=input()
for items in range(len(text)):
    if items%2==0:
        print(text[items],end='')
print(end='  ')
for items in range(len(text)):
    if items%2!=0:
        print(text[items],end='')
N = int(input())
for _ in range(0,N):
    my_str = input()
    print ('{} {}'.format(my_str[::2], my_str[1::2]))
T=int(input())
for i in range(T):
  S=input("")
  for item in range(length(S)):
     if item%2==0:
       print(S[item],end="")
  print(end=" ")
  for item in range(length(S)):
     if item%2!=0:
       print(S[item],end="")
  print(end='\n')
import java.io.*;
import java.util.*;

public class Solution {

    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
        Scanner s=new Scanner(System.in);
        String str;
        int T=s.nextInt();
        for(int i=0;i<T;i++){
            str=s.next();
          char c[]=str.toCharArray();
          int j,k;
          for(j=0;j<c.length;j++){
              System.out.print(c[j]);
              j+=1;
          }
          System.out.print(" ");
          for(k=1;k<c.length;k++){
              System.out.print(c[k]);
                k+=1;
          }
          System.out.println();
          }

        s.close();
    }
}
Num_set = int(input())


for item in range(Num_set):
    word = input()
    new = ""
    second = ""
    for i in range(len(word)):
    
        if i%2 == 0:
            new = new + word[i] 
        else:
            second = second +word[i]
    print(new +" "+second)