为什么此if语句导致“ TypeError:字符串索引必须为整数”?

时间:2019-09-03 18:16:34

标签: python

我正在尝试从字符串(public class Serializer { private static Gson serializer = createSerializer(); private static Gson createSerializer() { GsonBuilder gsonBilder = new GsonBuilder(); gsonBilder.registerTypeAdapter(Graph.class, new GraphAdapter()); return gsonBilder.create(); } public static String serialize(Object o){ return serializer.toJson(o); } public static JsonElement toJson(Object o){ return serializer.toJsonTree(o); } public static <T> T deserialize(String s, Class c){ return (T)serializer.fromJson(s, c); } public static <T> T fromJson(JsonElement graphObject, Class c) { return (T)serializer.fromJson(graphObject, c); } )中删除内容,但遇到了以下问题。

我试图将指向的字符串部分放在mirror内。

int()

2 个答案:

答案 0 :(得分:1)

如果您要尝试从字符串中删除字符,也许我建议使用replace()而不是遍历字符串:

>>> a = 'abc//123'
>>> a.replace('//', '')
abc123
>>> b = a.replace('//', '')
>>> a
abc//123
>>> b
abc123

您之所以得到TypeError,是因为istr,而不是int。注意行for i in mirror- mirrorstr,因此i中的每个字符mirror也是str然后,您尝试使用str索引字符串,该字符串无效,从而导致TypeError

答案 1 :(得分:0)

字符串是可迭代的,因此当您键入以下内容时:

for i in "string":
    print i

您会得到的

s
t
r
i
n
g

如果要获取字符串的索引,请使用enumerate

for i, c in enumerate("string"):
    print i,c

导致:

0 s
1 t
2 r
3 i
4 n
5 g