You can use [Select (Analysis)][1] to perform this operation. This method has the added benefit of preserving your attributes. There are two main steps:

 1. Use a generator to list all of the unique city codes
 2. Loop through unique cities codes and add the code to the Select SQL
    expression


----------


    import arcpy, os
    
    # Define the output workspace
    outws = r'C:\temp\out'
    
    # Set the input shapefile
    shp = r'C:\temp\test.shp'
    
    # Get a list of unique city codes using a generator
    cities = set(row[0] for row in arcpy.da.SearchCursor(shp, "city"))
    
    # Select unique cities and export to new shapefiles
    for c in cities:
        out_fc = os.path.join(outws, c) # Define the output name
        where_clause = '"city" = \'%s\'' % c # Select based on city name
        arcpy.Select_analysis(shp, out_fc, where_clause) # Perform the Select


  [1]: http://resources.arcgis.com/EN/HELP/MAIN/10.2/index.html#//000800000005000000