How can I get the diameter of each community
The method diameter doesn't appear to take vertex sets as a parameter.  Instead, call diameter on the appropriate induced subgraphs:

for ic in s_List:
    y = data_graph.induced_subgraph(ic).diameter()
    print(y)


Edit: Erm, I guess this depends on exactly what you want to measure.  While it's rather against the purpose of "communities," it is possible that the distance between a pair of vertices in your community is longer if the paths are restricted to the community than if they can pass through the rest of the graph.  Inducing the subgraphs as above would miss that.